1

整数 (コミュニティ サイトのユーザーの現在の評価スコア) を返す関数があります。その数は、コメントや提出物がどのように投票されるかに基づいて増減することがよくあります. 30秒ごとに「ポーリング」して、変更されているかどうかを確認し、変更されている場合は、表示している数値を更新したいと思います。

別の StackOverflow スレッドで、便利そうな次の JavaScript スニペットを見つけました。

function listen() {
  $.get("/mylongrequestfile", {}, function(data) {
     $("#mydiv").html(data);
     listen(); // then launch again
  }));
};

/mylongrequestfile を自分の関数に置き換えるだけですか? 私はそれを試みていますが、うまく機能していません。このコードまたはその他のスニペットを使用して、30 秒ごとにこの値を取得して表示するにはどうすればよいですか?

4

2 に答える 2

5

使用できます

window.setInterval

どれの

関数を繰り返し呼び出します。その関数を呼び出すたびに一定の時間遅延があります。

var intervalID = window.setInterval(yourfunctionname, 300);

これは 300 ミリ秒の遅延で実行されます。

コールバック引数

setInterval() は、コールバックが呼び出された後のミリ秒数をコールバック関数に渡します。これにより、引数として他の何かが期待される場合、混乱する可能性があります。この問題を回避するには、匿名関数を使用してコールバックを呼び出します。

コールバック関数に引数を渡す必要があるが、setInterval() による追加パラメーターの送信をサポートしていない Internet Explorer で動作させる必要がある場合は、同じ手法を使用できます。

var intervalID = setInterval(function() { YourFunction(); }, 300);
于 2009-09-29T10:30:55.707 に答える
0
var listener = function () {
$.get("http://www.domain.tld/script/", {}, function(data) {
    $("#mydiv").html(data);
}));
};

var interval = setInterval(listener, 30000);
于 2009-09-29T10:33:08.327 に答える