1

Twitter のような無限スクロールを製品ページに実装する準備をしています。つまり、特定のスクロールしきい値を超えているときに、AJAX を使用して追加のページ部分をロードします。しかし、そのような読み込み後にタイトルのトピックがどのように影響を受けるかはわかりません. 私の質問は次のとおりです。

  1. AJAX で読み込まれる要素の新しいバッチごとに、これらの新しい要素に対して DOM が更新されますか、それとも完全に更新されますか? 古い DOM はどうなりますか?

  2. ページで最初に使用した DOM とまったく同じように、これらの新しい DOM 要素で Javascript と jQuery を使用できますか? これは最初の質問に関連していると思います。

  3. ロードごとに、たとえば 9 つの新製品をロードします。各製品には、FB Open Graph API を利用した FB Like ボタンがあります。新製品の Like 要素は、適切な Like 送信が可能になるように、最初に使用した DOM 要素に発生するのと同じ非同期変更を経ますか?

4

2 に答える 2

1

1つずつ始めましょう。

  1. あなたの意図では、DOMは更新するのではなく、更新するだけです。新しい要素を挿入するだけなので、古い DOM はありません。

  2. はい、できるようになります。ただし、イベント リスナーには注意してください。開始を間違えると、新しいノードに新しいイベント リスナーを再度アタッチする必要があります。例えば:

    $('body').on('click','a.addToCart',function(){}) // 現在および将来のノードと一致します $('a.addToCart').on('click',function( ){}); // 現在のノードのみに一致します

  3. はい、ボタンごとに同じプロセスをもう一度行う必要があります。

おまけのヒント: モバイル環境に関心がある場合は、必要のないノードを削除して、DOM をできるだけきれいに保つ必要があります。

于 2012-12-27T22:50:02.493 に答える
0
  1. 新しい要素を DOM に追加するには、document.appendChild() を使用するだけです。(http://www.w3schools.com/jsref/met_node_appendchild.asp) ホールページを再構築するのは時間の無駄です;)

  2. 問題ないはずです。何度もやりましたが問題ありません。jQuery Mobile を使用している場合は、おそらく新しい要素を更新する必要があります。(更新が必要な場合は、使用している jQuery Mobile Widget のメソッドを確認してください)

  3. Facebook API の経験はあまりありませんが、「はい」と答えます =)

編集:回答にドイツのサイトへのリンクがありました。これが英語のサイトであることを忘れていました;)

于 2012-12-27T22:52:35.023 に答える