-1

所以我搜索了 SO 以帮助创建以下请求以div在特定时间间隔刷新 a。

    $(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 的使用。

4

2 回答 2

2

您所拥有的将起作用,但是如果网络连接/计算机速度较慢或服务器由于某种原因陷入困境,则请求可能会开始备份,如果这种情况发生太多,则可能会使浏览器崩溃。

要解决此问题,请使用 asetTimeout而不是间隔,以便它仅在收到上一个请求的响应后 4 秒才请求新数据。

function refreshNewsFeed() {
    $("#trigger-newsfeed").load("getNewsfeed.php",function(){
        setTimeout(refreshNewsFeed,4000);
    });
}
$(document).ready(refreshNewsFeed);
于 2013-04-22T21:31:43.893 回答
1

You can do this.

$(document).ready(function() {
    var loadNewsFeed = function () {
        $("#trigger-newsfeed").load('getNewsfeed.php');
    };
    loadNewsFeed();
    var refreshId = window.setInterval(loadNewsFeed, 4000);
});

In .ready we declare a function and assign it to the variable loadNewsFeed. Then we execute the function. Then, we setup the interval to execute every 4 seconds after that.

于 2013-04-22T20:58:57.163 回答