如何每30秒加载一部分页面

时间:2012-07-05 10:14:22

标签: javascript jquery html ajax javascript-events

  

可能重复:
  jQuery Ajax request every 30 seconds

我知道我们可以在某些事件上加载部分页面。我也知道我们可以在每个指定的时间加载整个网页。但我想知道如何每30秒加载一部分页面。

5 个答案:

答案 0 :(得分: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的优势在于,如果连接挂起一段时间,您将无法获得大量待处理请求,因为新的请求只会在上一个请求完成后发送。

答案 1 :(得分: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();

答案 2 :(得分:0)

jQuery已经具有内置功能,可以通过名为load()的远程文件替换元素的内容。使用load(),您可以使用此oneliner:

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

#refresh是要刷新的元素的ID,/remote/content.html是远程内容。

答案 3 :(得分:-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
}

答案 4 :(得分:-2)

如果您使用的是jQuery,则可以使用load()方法

setInterval(function(){

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

}, 30000);