像Twitter这样的实时更新

时间:2010-11-17 17:54:22

标签: c# .net asp.net jquery asp.net-mvc

如何实现像Twitter这样的实时更新(“自开始搜索以来,推送了423条推文”)?我需要至少每10秒刷新一次页面。我正在使用ASP.NET MVC和jquery。

3 个答案:

答案 0 :(得分:5)

您可以使用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兼容服务器。

答案 1 :(得分:1)

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

问候。

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

答案 2 :(得分:0)

在今天的浏览器中没有长轮询(又称COMET)支持(但是,这应该很快就会改变,使用HTML5),我每隔n秒使用AJAX请求轮询服务器并发送最新的时间步长可见条目/项目/推文/无论如何。然后后端计算新项目的数量并将其返回给浏览器。