如何实现像Twitter这样的实时更新(“自开始搜索以来,推送了423条推文”)?我需要至少每10秒刷新一次页面。我正在使用ASP.NET MVC和jquery。
答案 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)
答案 2 :(得分:0)
在今天的浏览器中没有长轮询(又称COMET)支持(但是,这应该很快就会改变,使用HTML5),我每隔n秒使用AJAX请求轮询服务器并发送最新的时间步长可见条目/项目/推文/无论如何。然后后端计算新项目的数量并将其返回给浏览器。