2012-08-23 34 views
0

试图在IE9中调试一个网站。我正在通过Python运行它。IE9和Python的问题?

在Chrome浏览器,safari,firefox和opera中,网站立即加载,但在IE9中它似乎挂起而实际上没有加载。

这可能是http流水线的问题吗?或者是其他东西?我该如何解决这个问题?

+0

你如何运行你的网站?这是发生在生产还是发展?你在使用哪个框架? – thebjorn

+3

当你说通过Python运行它时,你是什么意思?您在本地使用python打开浏览器ala WATIP的新实例?您正在使用python在浏览器上提供页面? – chucksmash

+0

正在开发中。在开发中似乎没有这个问题 我正在使用python simplehttpserver来运行它 –

回答

1

您需要指定您使用的是什么Python“Web服务器”(例如Bottle?也许是Tornado?CherryPy?),但更重要的是,您需要提供什么请求标头和什么HTTP响应进出IE9参与。

你可以用电线将它们从电线上提起。 ngrep,或者我认为你可以在IE9中使用开发者工具(F12键)。 (这是我上次看到的这个DID麻烦的Safari),可能是内容类型(这是相反的 - IE9有时会正确地gleans即使内容类型错误也是HTML mimetype),连接:关闭。

所以是的,这可能是HTTP流水线的一个问题:特别是如果你使用无效的Content-Length传输请求,甚至没有分块传输编码,IE可能会等待请求“完成”。这也会发生在Web浏览器中;但在IE中这种行为可能会覆盖正在刷新和关闭的连接,而在Web浏览器中则不会。这两个假设可能与您观察到的症状相符。

为了解决这个问题,您可以切换到分块传输编码,以某种方式替换内容长度,或者正确计算其值。如何做到这一点取决于服务器。

快速验证,你可以发出一个内容长度肯定太短(例如100字节?),看看这是否会导致IE未悬挂和显示部分网页。

0

使用packet sniffer截取并记录服务器和IE之间以及服务器和其他浏览器之间的数据包。检查他们并比较他们看看会发生什么。