我知道我们可以在一些事件加载页面的一部分。我也知道我们可以每隔指定时间加载整个网页。但我想知道如何每30秒加载一页的一部分。
回答
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
的优点是,如果连接挂起一段时间,你不会得到吨挂起的请求,因为前一个结束后一个新的才会被发送。
伙计没有必要setTimeout第二次 – 2012-07-05 10:24:43
感谢ThiefMaster。 – 2012-07-05 10:26:07
@Random当然有。否则,您立即重新启动下一个ajax调用。 – 2012-07-05 10:26:28
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();
在AJAX中使用'setInterval'是一个非常糟糕的主意。 – 2012-07-05 10:18:32
@FlorianMargaine你会怎么做呢? – 472084 2012-07-05 10:19:24
'setTimeout'并在前一个请求成功或失败后(即在'complete'回调中)创建一个新的超时时间(例如在'complete'回调中) – ThiefMaster 2012-07-05 10:19:37
如果您正在使用jQuery你可以使用load()方法
setInterval(function(){
$('#some-kinda-container').load('/some/kinda/url.html #bit-you-need');
}, 30000);
查看@ Jleagle的答案'的评论,看看为什么使用'setInterval'是一个非常糟糕的主意。 – 2012-07-05 10:21:56
如果你的ajax调用没有在30秒内完成,你有更大的担心比setInterval – 2012-07-05 10:23:03
它第一次不是约30秒,它是关于保持不变。如果你需要2秒才能得到回应,你会在5分钟左右重叠你的请求(没有计算,但你明白了) – 2012-07-05 10:25:53
$(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-05 10:40:16
- 1. 循环通过网页列表每30秒(更新页每30分钟?)
- 2. 部分加载asp.net页面
- 3. AJAX部分页面加载?
- 4. ASP.NET登录页面加载非常缓慢需要30秒
- 5. 如何在每次页面加载时更改html页面部分
- 6. ajax从另一页面部分加载
- 7. 仅在第一次加载时加载页面的一部分
- 8. 如何加载当前显示的HTML页面的一部分?
- 9. 5分30秒
- 10. Ajax - 如何使页面上的每个链接/表单仅重新加载该页面的一部分?
- 11. 如何显示加载页面的一些n秒
- 12. rich:dataScroller如何每10秒切换页面?
- 13. 每30分钟获取一个远程页面源码
- 14. cron/wget - 每5小时30分钟运行一次页面
- 15. Android每隔30秒从url中加载图片
- 16. Ionic 1,如何重新加载页面的一部分,而不是整页
- 17. coreservicesd/lssave每30秒写一次
- 18. 每30秒更改一次iframe源。
- 19. 每30秒运行一次Android服务
- 20. AudioUnit每30秒录制一次毛刺
- 21. 每30秒调用一次函数
- 22. 如何jQuery的。只加载页面的特定部分?
- 23. 30分钟后缓存页面加载和删除?
- 24. 加载HTML页面并修改部分
- 25. Facebook粉丝页面只部分加载
- 26. 从另一个文件加载页面的一部分
- 27. Swift:UILabel和UIImageView加载8-30秒
- 28. 如何使用JavaScript每30秒重新加载异地图像源?
- 29. 如何在页面加载后执行JavaScript程序30
- 30. 一个I帧我需要刷新每30秒(而不是整个页面)
如果您使用AJAX,则可以使用'setInterval()'函数调用AJAX方法。 https://developer.mozilla.org/En/Window.setInterval – antyrat 2012-07-05 10:15:43
@antyrat使用'setInterval'和AJAX是一个非常糟糕的主意。 – 2012-07-05 10:18:14
@FlorianMargaine,这有什么好主意? – 2012-07-05 10:18:46