代码之家  ›  专栏  ›  技术社区  ›  Prabhu

像Twitter这样的实时更新

  •  1
  • Prabhu  · 技术社区  · 15 年前

    你如何实现像Twitter那样的实时更新(“自从你开始搜索之后,又有423条tweets”)?我需要至少每10秒刷新一次页面。我正在使用ASP.NET MVC和jquery。

    3 回复  |  直到 15 年前
        1
  •  5
  •   Darin Dimitrov    15 年前

    你可以用 setInterval javascript函数,允许您使用AJAX定期轮询服务器以获取更新:

    window.setInterval(function() {
        // This will be executed each 5s
        // TODO: query your server for updates probably using AJAX
        // example with jquery:
        $.getJSON('/arethereanyupdates', function(data) {
            if (data.isupdates) {
                alert('yeap there are updates');
            }
        });
    }, 5000);
    

    HTML5中还有一种推送技术叫做 WebSockets 它允许服务器通知客户端更新,但你当然需要一个与HTML5兼容的浏览器,现在不难找到,而且 WebSocket API 兼容服务器。

        2
  •  1
  •   SubniC    15 年前

    您可以对服务器进行AJAX调用,请求更新,如果答案是肯定的(有新的东西),您可以显示javascript窗口,向用户提供建议,或者只更新您需要的页面内容。

    当做。

    更新:此 how-to 实现类似的行为

        3
  •  0
  •   Tomasz Zieliński    15 年前

    在当今浏览器中缺少长轮询(也称为COMET)支持的情况下(不过,这种情况很快就会发生变化,使用HTML5),我使用AJAX请求每n秒轮询一次服务器,并发送最新可见条目/item/tweet/whatever的时间步长。然后后端计算新项目的数量并将其返回到浏览器。