小编典典

加载彗星/服务器推送iframe时,停止浏览器的“厄运之战”

ajax

当使用Comet或Ajax Long Pull技术时-
通常使用iframe。当该iframe等待长时间连接关闭时,浏览器正在旋转它的rob动器(进度/加载指示器)。

一些网站,例如etherpad.com,设法使其停止。

他们是如何做到的呢?


阅读 256

收藏
2020-07-26

共1个答案

小编典典

经过一整天一夜的探索,我得出了以下结论:

  1. 服务器发送的事件-非常酷,目前仅可在Opera中使用,但可能是HTML5的一部分,其他浏览器可能会支持它。添加内容类型为“ application / x-dom-event-stream”的新元素标签,该标签允许 服务器 触发 客户端DOM中的 事件。据我了解,它不应显示进度指示器。这也是标准的工作草案,而不是像整个iframe彗星一样的技术。

  2. XMLHttpRequest-在Firefox和Safari中,但在IE中不可用,它可用于长拉页面加载,从而能够处理出现在每个readyStateChange事件中的片段。将不显示进度指示器*。-请参阅下面的评论

  3. ActiveXObject(“ htmlfile”)-可以在IE中使用,以创建当前窗口范围之外的页面/窗口。这使进度指示器消失了!加载的iframe将在不可见的浏览器中。

有关服务器发送事件的更多信息:

有关其他两种技术的更多信息(也可以更好地解释问题):* http://meteorserver.org/browser-
techniques/

关于每种技术的更多深入了解,以及更多技术:

2020-07-26