我知道我们可以在某些事件上加载部分页面。我也知道我们可以在每个指定的时间加载整个网页。但我想知道如何每30秒加载一部分页面。
答案 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);