当我通过 iframe 推送使用 comet 时,当数据通过 iframe 推送时,浏览器颤动器将永远保持旋转。
Lightstreamer 也在使用 iframe,但是他们如何设法让它停止呢?
我发现了一个类似的帖子here https://stackoverflow.com/questions/1064782/stop-the-browser-throbber-of-doom-while-loading-comet-server-push-iframe/但这似乎并不能解决我的问题。任何有关 lightstreamer 如何工作的解释将不胜感激。谢谢。
我在以下位置写了一篇关于此的文章http://www.shanison.com/2010/05/10/stop-the-browser-%E2%80%9Cthrobber-of-doom%E2%80%9D-while-loading-comet-forever-iframe/ http://www.shanison.com/2010/05/10/stop-the-browser-%E2%80%9Cthrobber-of-doom%E2%80%9D-while-loading-comet-forever-iframe/
以下是针对不同浏览器的总结解决方案:
1.火狐浏览器
在 Firefox 中,在触发回调方法来更新内容之前,您必须创建一个临时 iframe 并附加到文档正文,然后将其删除。通过在触发事件之前继续执行此操作,浏览器抖动就会消失。
2.Chrome/Safari
对于 chrome 和 safari 如果你只是像上面那样做,永远的 iframe 将根本无法工作!服务器端不会返回任何数据。那么如何让 comet iframe 在 chrome 和 safari 中工作。黑客位于服务器端。为了使 iframe 在此 webkit 浏览器中永久发生,您必须满足两个条件。
首先,服务器必须先向浏览器推送一些垃圾数据(2k左右),然后才能推送真实数据。因此,只需先向浏览器写一些 JavaScript 注释即可。
3、IE浏览器
在IE中,如果你使用上面的iframe方法,它就可以工作。我已经成功地做到了这一点。然而,为了阻止浏览器的厄运,您必须使用特殊的 htmlfile 对象。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)