ブラウザでPHPページを呼び出して10秒ごとにdivに結果を投稿するにはどうすればよいですか?シンプルなJQueryのajaxスクリプトに関する質問
ありがとうございました。私はjqueryを学んでいます。
ブラウザでPHPページを呼び出して10秒ごとにdivに結果を投稿するにはどうすればよいですか?シンプルなJQueryのajaxスクリプトに関する質問
ありがとうございました。私はjqueryを学んでいます。
この動作するはずです:
function loadResults(){
$('div.to.update').load('yourpage.php')
setTimeOut(arguments.callee, 10000)
}
loadResults()
仕組み:この行は 'yourpage.php' へのAJAX呼び出しを行い、そのページの結果とdiv要素を満たし
$('div.to.update').load('yourpage.php')
(ノートyourpageを呼び出した結果は、ページ全体が、ちょうどスニペット)
setTimeOut(arguments.callee, 10000)
のsetTimeoutスケジュールすべきではありません将来の関数呼び出し、この場合は10秒です。すべての関数がアクセスできる変数「引数」から取り出された関数自体を呼び出す関数。これは再帰関数のようですが、10秒の遅延があります。
最後に、関数を最初に呼び出してループを開始します。
EDIT:あなただけのこの操作を行う、後でループを停止する必要がある場合も)のsetInterval(で関数を呼び出すことができます
:
function loadResults(){
$('div.to.update').load('yourpage.php')
}
var interval_id = setInterval(loadResults,10000)
// Later on when you want to stop the refresh...
clearInterval(interval_id)
定期的なアップデータが必要です。ような何か:
function callMeAtInterval()
{
$.ajax({
method: 'get',
url : 'status.php',
dataType : 'text',
success: function (text) { $('#updateMe').html(text); }
});
}
//causes callMeAtInterval() to get called every 5 seconds.
var holdTheInterval = setInterval(callMeAtInterval, 5000);
jQueryの$.ajax機能がURLで指定されたリソースの出力を取得し、成功コールバックを使用すると、上記の例では、結果をいくつかの処理を行うことができます:
('#updateMe').html(text);
は、id updateMe
のページ要素をサーバーから返されたテキストで埋めます。
それはのsetIntervalは、すべてこの機能を実行することは注目に値します保留中のAJAXリクエストの進行状況に関係なく、5秒(この例ではkarim79が提供されています)。最初のリクエストが完了するのに3秒かかる場合、setIntervalは5秒ではなく2秒後に次のリクエストを送信します。実際にリフレッシュと次のリクエストの間に5秒が必要な場合は、success
コールバック関数。
function callMeAtInterval() {
$.ajax({
method: 'get',
url : 'status.php',
dataType : 'text',
success: function (text) {
$('#updateMe').html(text);
setTimeout(callMeAtInterval, 5000);
}
});
}
このアプローチの欠点は、1つの失敗したsetTimeoutはセクションが再びリフレッシュされないことを意味します。
これは、私は最高のソリューションだと信じて! –
それは非常にエレガントです – chris