如何防止浏览器缓存流式Comet通信

4
我正在尝试使用Comet“永久iframe”从我的HTTP服务器向浏览器推送数据包,并使用Transfer-Encoding: chunked头从服务器提供脚本标记。我发现我的脚本标记不会立即被解释,我必须发送若干个块,才能让浏览器开始对它们做出响应。在IE8的情况下,这似乎需要大约256字节的数据(我没有精确检查),而在Firefox 3.5.7中,它似乎是超过1千字节的数据。我还没有成功让Chrome在连接关闭之前完全响应脚本标记。但是,在所有情况下,如果我结束分块数据(使用“0”块),则所有缓冲的块都会被解释。我在Safari上找到了一些关于这种行为的reference,但没有找到其他浏览器的相关信息。

我想知道如何可靠地执行这些脚本标记,而不需要某种缓冲机制延迟它们的执行?

1个回答

1

你必须使用永久的 iframe 吗?如果你使用 WebSocket 并降级到 Flash XML Socket,你可以支持目前所有使用的浏览器(除非是某些功能手机),并获得真正的套接字 API。


你说得完全正确...事实上,那正是我现在正在做的。当我提问时,HTML5 WebSocket支持还不如现在成熟。感谢你的回答,它很好地解决了这个问题 :) - NeilDurant

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接