4

重複の可能性:
30秒ごとのjQueryAjaxリクエスト

あるイベントでページの一部をロードできることは知っています。また、指定された時間ごとにWebページ全体をロードできることも知っています。しかし、30秒ごとにページの一部をロードする方法を知りたかったのです。

4

5 に答える 5

12
function refreshPage() {
    $.ajax({
        url: 'ajax/test.html',
        dataType: 'html',
        success: function(data) {
            $('.result').html(data);
        },
        complete: function() {
            window.setTimeout(refreshPage, 30000);
        }
    });
}

window.setTimeout(refreshPage, 30000);

を使用setTimeoutすると、接続がしばらくハングした場合に、前のリクエストが終了した後にのみ新しいリクエストが送信されるため、保留中のリクエストが大量に発生しないという利点があります。

于 2012-07-05T10:21:08.340 に答える
2
function load_content(){

    setTimeout(function(){

        $.ajax({
            url: 'ajax/example.html',
            dataType: 'html',
            success: function(data) {
                $('.result').html(data);
                load_content();
            }
        });dataType: 'html',

    },30000);

}

load_content();
于 2012-07-05T10:15:51.297 に答える
0

jQueryには、要素のコンテンツをと呼ばれるリモートファイルに置き換える機能がすでに組み込まれていますload()。あなたはこのワンライナーを使うことload()ができます:

window.setTimeout($('#refresh').load('/remote/content.html'), 30000);

#refreshは更新する要素のID、/remote/content.htmlはリモートコンテンツです。

于 2012-07-05T10:57:24.960 に答える
-1
$(function() {
   setInterval(function() {
     getData();  // call to function
   }, 30000 );  // 30 seconds
});


// define your function here
function getData() {
   var url ="/mypage.php?type=load_data";
   var httpobj = $.ajax({url:url,async:false});  // send request
   var response = httpobj.responseText.trim(); //get response
   $('#myDiv').html(response);  // display data
}
于 2012-07-05T10:38:13.150 に答える
-2

jQueryを使用している場合は、load()メソッドを使用できます

setInterval(function(){

    $('#some-kinda-container').load('/some/kinda/url.html #bit-you-need');

}, 30000);
于 2012-07-05T10:21:27.053 に答える