2

私はこのスクリプトを取得することができました。ダイアログ ウィンドウの div を更新しています。

function getRandom() {
$("#category_dialog").load("<?php echo $category; ?>", '', callback);

}

function callback() {
    $("#category_dialog").show("fast");
    setTimeout("getRandom();", 10000);
}

$(document).ready(getRandom);

すべて正常に動作します。div は 10 秒ごとに更新されます。しかし、私はこの方法に疑問を持っています。1. 10 秒ごとに更新を行うと、ブラウザの速度が遅くなったり、このようなことになりますか? 2. 3 秒ごとにリフレッシュする速度を上げたいのですが、何か問題が発生する可能性はありますか?

クリックしてコンテンツを更新するリンクを何らかの形で作成したいと思いますが、良い例が見つかりませんでした。誰かがこれで私を助けることができますか?そのため、load.() を使用して category_dialog div をロードしますが、onclick 呼び出しを使用して、新しい内容を表示します。ありがとう!


Kissakiの助けを借りて、リンクを更新する簡単な関数を作成することができました:)サンプルは次のとおりです。

$(function() {
  $("#refresh").click(function() {
     $("#category_dialog").load("<?php echo $category; ?>")
  })
})
4

1 に答える 1

1

更新間隔を短くしたい場合は、帯域幅、サーバー負荷、クライアント負荷などのパフォーマンスを考慮するだけで済みます。

バックグラウンドでの無駄な更新でなければ、クライアントの負荷は問題になりません。たとえば、ウィンドウにフォーカスがある場合にのみ更新して、無駄で見たことのないデータのプルを減らすことができます。

div は 1 回表示され、更新するたびに show 関数を呼び出すため (非表示にならなかったため、まだ表示されている間)、その呼び出しを削除できます。jQuery がそれをどのように実装したか、またここでどれだけパフォーマンスが向上したかはよくわかりませんが、とにかく最初の呼び出しの後には役に立たない呼び出しです。

load 関数を使用しているので、これをコールバック関数で使用することもできます。でもチェックする必要があります。

また、load 関数に空の文字列を渡す必要はありません。そのデータ パラメータはオプションです。

コンテンツの更新が見られないので、ここに貼り付ける前にコードから削除したのではないでしょうか?

onclick の場合、jQuery は click() 関数http://api.jquery.com/click/を提供します。

$("#category_dialog").click(function(event){
  //refresh code here
});
于 2010-09-17T21:03:47.410 に答える