ajax - 加载 cometd /服务器推送iframe时,停止浏览器 “throbber of doom”

标签 ajax comet loading progress throbber

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

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

他们是如何做到的呢?

最佳答案

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

  • 服务器发送的事件-非常酷,目前仅在Opera中可用,但可能是HTML5的一部分,其他浏览器可能会支持它。添加内容类型为“application / x-dom-event-stream”的新元素标签,该标签允许服务器触发客户端DOM 中的事件。据我了解,它不应显示进度指示器。这也是标准的工作草案,而不是像整个iframe cometd 一样的hack。
  • XMLHttpRequest-在Firefox和Safari中,而不是在IE中,它可用于长拉页面加载,从而能够处理出现在每个readyStateChange事件中的片段。将不显示进度指示器*。 -请参阅
  • 下方的评论
  • ActiveXObject(“htmlfile”)-可在IE中使用,以创建当前窗口范围之外的页面/窗口。这使进度指示器消失了!加载的iframe将在不可见的浏览器中。

  • 有关服务器发送事件的更多信息:
  • http://my.opera.com/WebApplications/blog/show.dml/438711

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

    关于每种技术的更多深入了解,以及更多技术:
  • http://cometdaily.com/2007/12/11/the-future-of-comet-part-1-comet-today/
  • http://cometdaily.com/2008/01/10/the-future-of-comet-part-2-html-5’s-server-sent-events/
  • 关于ajax - 加载 cometd /服务器推送iframe时,停止浏览器 “throbber of doom”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1064782/

    相关文章:

    java - 如何在Java中使用信号量

    linux - 当多个用户同时访问它时,有多少程序/类的副本被加载到内存中

    javascript - 使用ajax/javascript获取表单的父数据

    javascript - 强制 <div></div> 到网页底部居中

    asp.net - Comet 在 ASP.NET 中使用异步页面更容易吗?

    android - GCM (Google Cloud Messaging) 使用什么技术?

    javascript - 在 vue js 函数期间显示加载动画

    javascript - PHP AJAX 发布/获取

    javascript - 使用异步 ajax 调用(过多)时 IE7 挂起 : false

    基于 C#/ASP 的反向 AJAX