多个用户每隔X分钟同时使用AJAX更新内容

时间:2010-09-04 22:20:23

标签: jquery asp.net-mvc ajax

所以我的页面上有一个区域,我想每10分钟更新一次。

现在,我正在使用此代码:

var refresh = setInterval(refreshArea, 600000);

但是这会在客户端更新,因此如果100个不同的用户正在查看该页面,则内容将在100个不同的时间更新。

我希望所有用户每10分钟更新一次内容,例如3:00,3:10,3:20等,这样如果用户在3:05来到该页面,内容将在5分钟后更新,然后每10分钟更新一次。

我正在使用ASP.NET MVC,所以我确定有一些服务器代码我需要这样做,但我不知道如何。

2 个答案:

答案 0 :(得分:3)

您可以通过组合setTimeout and setInterval functions来实现这一目标。

var timeout = <%= (10 - DateTime.Now.Minute % 10) * 1000 %>;
setTimeout(function() {
    refreshArea();
    setInterval(refreshArea, 60 * 10 * 1000);
}, timeout);

请注意,超时值是在服务器上计算的。

答案 1 :(得分:0)

你可以看一下这个问题的某种Comet解决方案;虽然我对Microsoft堆栈不太熟悉,Websync似乎正在寻找你正在寻找的东西。 (虽然价格相当昂贵。)

或者,pokein提供免费替代方案。

免责声明:我从未使用过。 :)