【问题标题】:Update content with AJAX every X minutes at same time for several users为多个用户同时每 X 分钟使用 AJAX 更新内容
【发布时间】:2010-09-04 22:20:23
【问题描述】:

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

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

var refresh = setInterval(refreshArea, 600000);

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

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

我正在使用 ASP.NET MVC,所以我确信我需要一些服务器代码来执行此操作,但我不知道如何。

【问题讨论】:

    标签: jquery asp.net-mvc ajax


    【解决方案1】:

    您可以通过结合setTimeout and setInterval functions 来实现这一点。

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

    注意超时值是在服务器上计算出来的。

    【讨论】:

    • 我还建议在服务器上使用良好的缓存方案以最大限度地减少数据库调用,从而使服务器的“批量调用”更加轻松
    【解决方案2】:

    对于这个问题,您可以查看某种 Comet 解决方案;尽管我对 Microsoft 堆栈不太熟悉,但 Websync 似乎可以满足您的需求。 (虽然很贵。)

    另外,pokein 提供免费替代方案。

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

    【讨论】:

      猜你喜欢
      • 2014-03-13
      • 1970-01-01
      • 2015-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多