0

我想要做的是当 1 个用户选中一个复选框(例如,它可以是任何事件)时,打开相同页面的每个人都立即看到它而无需刷新页面。

我知道如何使用 ajax 和 setTimeOut(或 setInterval)函数来做到这一点:使用 setTimeOut 函数,我们打开流,其中无限循环检查是否触发了事件,如果是,我们使用 ajax 更新内容。或者设置时间间隔来更新页面。

我正在寻找更优化和跨浏览器的解决方案,所以任何帮助将不胜感激。

4

1 回答 1

1

谷歌搜索:彗星或长轮询

对于跨浏览器的解决方案,您必须改变 web-servers/HTTP 的设计目的,即尽可能快地为来自浏览器的请求提供页面,然后关闭连接。新浏览器有新方法,HTTP 模型中有新定义,但它们不适用于旧浏览器。

长轮询的基本原理是向服务器发送一个请求,服务器闲置,假装正在生成页面,如果发生任何需要更新客户端的事件,然后将信息作为响应发送给在请求之前的请求。这在服务器资源方面效率低下,但在用户体验方面却尽可能快。

于 2012-08-06T12:53:46.403 回答