【问题标题】:IE9 and Python issues?IE9 和 Python 问题?
【发布时间】:2012-08-23 19:30:20
【问题描述】:

尝试在 IE9 中调试网站。我正在通过 Python 运行它。

在 chrome、safari、firefox 和 opera 中,网站会立即加载,但在 IE9 中,它似乎会挂起并且从未真正加载过。

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

【问题讨论】:

  • 您的网站运行情况如何?这发生在生产中还是仅在开发中?您使用的是哪个框架?
  • 你说通过 Python 运行它是什么意思?您在本地使用 python 打开浏览器的新实例 ala WATIP?您正在使用 python 在浏览器上提供页面?
  • 正在开发中。在开发中似乎没有这个问题我正在使用 python simplehttpserver 来运行它

标签: python windows debugging internet-explorer-9 pipeline


【解决方案1】:

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

您可以使用例如将它们从电线上提起。 ngrep,或者我认为你可以在 IE9 中使用开发者工具(F12 键)。

IE9 最常见但通常不会打扰 Web 浏览器的怪癖是 Content-Length 不匹配(好吧,我上次查看时这个 DID 打扰了 Safari),可能是 Content-Type(这反过来 - IE9 有时会正确收集 HTML即使 Content-Type 错误的 mimetype),连接:关闭。

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

要解决这个问题,您可以切换到分块传输编码,它以某种方式替换 Content-Length,或者正确计算其值。如何执行此操作取决于服务器。

为了快速验证,您可以发出 Content-Length 肯定太短(例如 100 字节?),以查看这是否会导致 IE 取消挂起并显示部分网页。

【讨论】:

    【解决方案2】:

    使用packet sniffer 拦截和记录服务器和IE 之间以及服务器和另一个浏览器之间的数据包。检查它们并比较它们,看看会发生什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-24
      • 1970-01-01
      • 2014-07-08
      • 2013-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-30
      相关资源
      最近更新 更多