在IE7中打开新选项卡之前,不会调用Ajax回调

时间:2011-10-04 08:07:22

标签: ajax caching internet-explorer-7

IE7有一些非常奇怪的问题,只有IE7。当尝试复制问题时,它只发生在本机IE7上,而不是在IE8 / 9中运行IE7模式时,所以请记住,如果你试图复制这个问题。

问题如下:

我们正在使用AJAX轮询服务器的响应。用户发布了服务器可能需要处理的内容,因此每隔5秒左右发送一个请求,检查服务器是否完成。这在除了本机IE7之外的每个浏览器中都能正常工作。问题是它永远不会停止“加载”。当使用Fiddler2检查请求时,我们看到它执行了两个请求,然后就没有了。当它仍处于PENDING模式时,它会停止执行任何操作。在sain浏览器中,它继续轮询,然后在“CONFIRMED”时停止。真正奇怪的是,当你打开一个新的标签时,它会按照正常,唯一,真的返回它的最终请求。

这不是页面需要焦点或任何东西,随机点击无效。我在这里问,因为我甚至无法使用项目的本地实例重现该问题。

以下是服务器发回的标题:

这些是生产计算机上响应的标头。这是最后的回应。它会无限加载,直到您打开一个新选项卡(只是一个空的新选项卡!),然后发出最终请求并且一切正常。

HTTP/1.1 200 OK
Accept-Ranges: bytes
Age: 0
Cache-Control: max-age=0, private, must-revalidate
Content-Type: application/json; charset=utf-8
Date: Tue, 04 Oct 2011 07:37:45 GMT
ETag: "867dafc628c43b6ca8a73d1977669250"
P3P: CP="ALL DSP COR CURa ADMa DEVa OUR IND COM NAV"
Server: nginx/1.0.6
Set-Cookie: _web_session=COOKIE; path=/; expires=Tue, 04-Oct-2011 10:37:45 GMT; HttpOnly
Vary: Accept-Encoding
Via: 1.1 varnish
X-Cache: MISS
X-Runtime: 0.062794
X-UA-Compatible: IE=Edge,chrome=1
X-Varnish: 55900984
Content-Length: 145
Connection: keep-alive

{"direct_publishing_settings_id":9970,"confirmed":"PENDING","errors":{},"username":"************","url":"","blog_id":44606,"platform":"blogg_se"}

这些是我本地服务器上相同请求的标头。这不会拖延请求。

HTTP/1.1 200 OK
X-Ua-Compatible: IE=Edge
Etag: "253c934246a69c9ca821464f80f400b3"
P3p: CP="ALL DSP COR CURa ADMa DEVa OUR IND COM NAV"
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8
Date: Tue, 04 Oct 2011 07:34:22 GMT
Server: WEBrick/1.3.1 (Ruby/1.8.7/2010-01-10)
X-Runtime: 0.459232
Content-Length: 137
Cache-Control: max-age=0, private, must-revalidate
Set-Cookie: _web_session=COOKIE; path=/; expires=Tue, 04-Oct-2011 10:34:22 GMT; HttpOnly

{"direct_publishing_settings_id":10,"confirmed":"PENDING","url":"","blog_id":29,"errors":{},"username":"fsasaffas","platform":"blogg_se"}

如果你想尝试一下,你可以去videofy.me,获得一个新帐户(这很容易),登录后转到videofy.me/blogger/settings/direct_publishing。在第一个下拉列表中选择一个博客平台,按“激活”并在显示的用户名/密码字段中写入内容,然后按绿色按钮并等待。在45秒或随机的时间后打开一个新标签,并看到请求神奇地完成。

我猜它必须对IE7缓存请求做一些事情,然后如果打开一个新选项卡就会发布一些东西。但这只是一个猜测,谷歌搜索没有任何相关。我在这里发帖是因为它太模糊了,我希望有人知道这件事。

0 个答案:

没有答案