当使用彗星或Ajax的龙拉技术 - 通常使用的iframe。 虽然该iframe正在等待长的连接关闭,浏览器在旋转其活动指示器(进度/负载指示)。
一些网站,例如etherpad.com,设法使它停止。
他们是如何做到的呢?
当使用彗星或Ajax的龙拉技术 - 通常使用的iframe。 虽然该iframe正在等待长的连接关闭,浏览器在旋转其活动指示器(进度/负载指示)。
一些网站,例如etherpad.com,设法使它停止。
他们是如何做到的呢?
挖了一天,并在互联网络的胆量一晚后,这里是我想出了:
服务器发送的事件 - 非常酷,目前仅在Opera,但可能是HTML5的一部分,其他的浏览器有时可能支持它。 添加新的元素标签与内容类型“应用程序/ x-DOM事件流”,它允许服务器火在客户端的DOM事件。 它不应该显示进度指标,因为据我所知。 这也是一个标准的工作草案,而不是像整个IFRAME彗星事情黑客攻击。
XMLHttpRequest的 - 在Firefox和Safari浏览器,但不是在IE浏览器,它可用于长期拉页面加载,使他们出现在各readyStateChange事件来处理片段。 不会显示进度指示器*。 - 见下文评论
的ActiveXObject(“HTMLFILE”) - 可在IE被用来创建一个页面/窗口是当前窗口范围之外。 这使得进度指示器走开! 加载的IFRAME将是一种无形的浏览器。
更多关于服务器发送的事件:
而更多关于其它两种技术(也解释了这个问题越好):* http://meteorserver.org/browser-techniques/
更深入地了解每一种技术,多技术:
对我来说,运行在AJAX请求的setTimeout解决一切。 当我运行的document.ready的要求,我得到了“厄运的活动指示器”。 但随着setTimeout的它不会发生。 (这个修复也适用于Chrome浏览器)。
就在那你可能需要一些例子的情况下,这家伙没有给出一个解决方案来解决Firefox的问题。 http://www.shanison.com/?p=237
我有同样的问题,而解决方案是使用,而不是隐藏的iframe阿贾克斯。 因此,而不是在页面的某个地方产生的iframe:
$("#chat .msg_list").prepend('<iframe id="hidden" src="chatFrame?id=$userId" frameborder="0" height="0" width="100%"></iframe>');
我用jQuery的Ajax调用iframe的内容加载到一些格:
$('#chat #chat_comet').load('chatFrame?id=$userId');