2010-02-05 73 views
4

我试图从我的HTTP服务器将数据包推送到浏览器,使用Comet“forever iframe”并使用Transfer-编码:分块头。我发现我的脚本标签没有被立即解释,我必须在浏览器开始响应之前发送一些块。在IE8的情况下,这似乎需要类似于256字节的数据(我没有精确检查),而在Firefox 3.5.7中它似乎超过了千字节。在连接关闭之前,我还没有设法让Chrome响应脚本标记。但是,在所有情况下,如果我结束分块数据(使用'0'块),则会解释任何缓存的块。我在Safari上发现了一些reference这种行为,但没有发现其他浏览器的任何此类信息。如何停止在浏览器中缓存流式Comet通信

我想知道的是,如何在发送它们时可靠地执行这些脚本标记,而没有似乎是某种缓冲机制延迟它们的执行?

回答

1

你必须永远使用iframe吗?如果您使用websocket并回退到flash xml套接字,您可以支持当前正在使用的所有浏览器(功能手机上除外),并获得真正的套接字api。

+0

你是绝对正确的......事实上,这正是我现在所做的。当时我问,HTML5 websocket支持并不像现在这样成熟。感谢您的回答,它很好地回答了这个问题:) – NeilDurant 2010-12-08 04:09:27