【发布时间】:2010-11-17 17:54:21
【问题描述】:
您如何像 Twitter 那样实现实时更新(“自从您开始搜索以来,还有 423 条推文”)?我需要至少每 10 秒刷新一次页面。我正在使用 ASP.NET MVC 和 jquery。
【问题讨论】:
标签: c# .net asp.net jquery asp.net-mvc
您如何像 Twitter 那样实现实时更新(“自从您开始搜索以来,还有 423 条推文”)?我需要至少每 10 秒刷新一次页面。我正在使用 ASP.NET MVC 和 jquery。
【问题讨论】:
标签: c# .net asp.net jquery asp.net-mvc
您可以使用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 的服务器。
【讨论】:
您可以对您的服务器进行 AJAX 调用以请求更新,如果答案是肯定的(有新事物),您可以显示一个 javascript 窗口来建议用户或只更新您需要的页面内容。
问候。
更新:这个how-to 实现了类似的行为
【讨论】:
在当今的浏览器不支持长轮询(又名 COMET)的情况下(不过,这应该很快就会改变,使用 HTML5),我使用 AJAX 请求每 n 秒轮询一次服务器并发送最新的时间步长可见条目/项目/推文/任何东西。然后后端统计较新项目的数量并将其返回给浏览器。
【讨论】: