所以我搜索了SO以帮助创建以下请求以特定间隔刷新div
。
$(document).ready(function() {
$("#trigger-newsfeed").load("getNewsfeed.php");
var refreshId = setInterval(function() {
$("#trigger-newsfeed").load('getNewsfeed.php');
}, 4000);
});
虽然我想知道是否可以通过使用Ajax来提高效率(如果在没有我意识到的情况下它没有使用Ajax),这是有效的。
我曾尝试使用其他一些Ajax代码来执行此操作,但是,其他解决方案会等待间隔完成然后加载数据。因此,例如,如果间隔设置为5秒,则每次访问该页面时,用户必须等待5秒钟然后才会加载;所以这是我发现最好的一个片段,通过首先传递信息 然后按间隔刷新;虽然我不确定是否最好使用jquery来做到这一点。
我问这个是因为大多数关于div
刷新的在线搜索都指向了Ajax的使用。
答案 0 :(得分:2)
您所拥有的功能,但如果网络连接/计算机运行缓慢或服务器由于某种原因而陷入困境,请求可能会开始备份,如果这种情况发生太多,可能会导致浏览器崩溃。
要解决此问题,请使用setTimeout
而不是间隔,以便它在收到上一个请求的响应后4秒才会请求新数据。
function refreshNewsFeed() {
$("#trigger-newsfeed").load("getNewsfeed.php",function(){
setTimeout(refreshNewsFeed,4000);
});
}
$(document).ready(refreshNewsFeed);
答案 1 :(得分:1)
你可以这样做。
$(document).ready(function() {
var loadNewsFeed = function () {
$("#trigger-newsfeed").load('getNewsfeed.php');
};
loadNewsFeed();
var refreshId = window.setInterval(loadNewsFeed, 4000);
});
在.ready中我们声明一个函数并将其分配给变量loadNewsFeed。然后我们执行该功能。然后,我们设置间隔在此之后每4秒执行一次。