2009-08-18 7 views
1

私はjQueryの世界では非常に新しく、ここではかなり些細な質問をしているかもしれません。私はコミュニティがjQueryの機能を持つデータバインドされたオブジェクトのベストプラクティスとして何を見ているのか不思議です。リピーター内のjQuery

特定の例として、私は現在、オブジェクトのリストにバインドされたリピータを作成しました。各オブジェクトには、「リンク」、「サムネイル」、「サブテキスト」などのプロパティがあります。これは小さなリピータです(いつでも10個のアイテムがあります)。ユーザーが「リンク」をクリックすると、そのオブジェクトを反映するためにページの別の領域が更新されます。

私がこれまでに発見したアプローチが伴う:

  • を動的にロードするリンク要求に応答して、オブジェクトを返すためにJSONサービスの作成
  • C#の分離コードから必要なjQueryのスクリプトを作成します(余分な可能性が不要なデータベースのヒット)
  • が動的にC#の分離コード(similar struct

I内JS構造体を作成するにはこのシナリオでJSONサービスを避ける主な理由は、オブジェクトがデータソースから返された後に一度バインドされていることです。私は、別のdbヒットが保証されているかどうかはわかりませんが、私はすべての提案に公開しています。

答えて

1

JQueryコードを変更する必要がないため、C#コードビハインドから必要なjQueryスクリプトを動的に作成する必要はありません。控えめなJSはjQueryの主なものです。

私はJSの一枚は、次のようになります想像:

$('.link-class', '#repeater-id').click(function(){ 
    // Get the id of the link or the target using $(this).attr('id') 
    // Show a page section or call a service using the the discovered ID. 
}); 

あなたは、あなたが表示したいデータを識別するために必要なデータを引き出すために最初のコメントを使用することができます。

2番目のコメントは、ページ上の他のセクションへのAjaxコールまたはdivの切り替えが可能です。このデータが大きければ、私はAjaxに傾倒します。そうでなければ、私はそれをページに保持し、それをオンまたはオフに切り替えるだけです。

ユーザーがリンクのいくつかをクリックする傾向があると思うなら、ページが少し重い場合でも非アヤックスオプションに少し有利に重みを付けるでしょう。特に、ユーザが以前にクリックされたリンクに戻る可能性がある場合。

それは意味がありますか?さらに精巧にお楽しみください...

+0

clickイベントでは意味があり、エレガントです。ちょっとした情報しかページにロードされていないので、初期ロード時に一度にロードすることについては分かりません。私が持っている1つの質問は、各オブジェクト(すなわち、 "サブテキスト")に付加された追加データです。 itemdataboundイベントでは、item.Subtextは簡単に利用できますが、その追加情報の添付方法は不明です。 –

+0

これは最善のルートと思われるので、私はカスタム属性の部分に取り組む新しい質問を追加しています。私は生成される必要がないJavascriptの大ファンです(またはその問題に関して生成されるコード) –

+0

こんにちはAlexis。チックをありがとう:)。サブテキストの問題で、私はそれを非表示のフィールドまたはHTMLエレメントとして出力します。次に、必要なときにそれを見つけるセレクタを作成します。前と同じように、var subText = $( 'input#subTextID' + id、 '#repeater-id')。 –

0

このリストにはいくつかの項目に関する基本的な情報がいくつかあります。その項目をクリックすると、その項目に関するデータがいくつか表示されます。

レンダリングされたページのサイズの違いに応じて、選択肢1(動的jQuery)または2(JSONサービス)を選択します。私たちが10kb付近の違いを話していたら、私は動的なjQueryに行き、すべてのデータを準備しておきます。それ以上のものがあれば、JSONサービスを使用してください。

余分なDBリクエストと、ユーザーがそれを期待したときの遅延は何も問題ありません。誰かがウェブページのアイテムをクリックした場合、半分以下の遅れで、もう少し遅くても1秒以上で問題ないでしょう。正常。

関連する問題