【发布时间】:2012-03-13 02:50:26
【问题描述】:
我的网站有多个部分每半秒检查一次更新,因此它可以提醒您有消息等。但是我觉得使用带有 setInterval 的 $.post 在网站上可能有点繁重。有没有更适合这些任务的替代方法?
【问题讨论】:
-
setInterval 绝对是设置异步定时事件的最佳方式。你说你有多个部分,每个部分都有自己的 POST 吗?这似乎是沉重的部分。最好让一个请求获取所有数据。
-
你真的应该减慢这些请求的速度。每半秒触发一个 HTTP 请求实在是太过分了。 20-30秒更理智一点。使用 Web Sockets 是理想的选择。
-
您可以增加间隔,这样就不会占用您太多的处理时间。以下是 Comet en.wikipedia.org/wiki/Comet_(programming) 术语下的方法
-
是的,我就是这么想的,但是由于间隔的数量取决于您在页面上的位置(异步消息更新、侧边栏请求、各种通知等)所以我必须修改它很大程度上取决于您所在的页面,但是我可能最终还是会这样做,因为我认为额外的工作非常值得增加响应时间。谢谢。
-
@Ian:如果它对时间更敏感,那么轮询根本就行不通。您将需要使用长轮询或网络套接字——它们是为实时通信而构建的。
标签: javascript jquery ajax asynchronous