IE ajax中断问题

时间:2010-09-22 13:28:36

标签: javascript jquery ajax internet-explorer-7

我在IE7中遇到此问题,但在Chrome或firefox中没有:

我有几个通过ajax加载的页面元素。此元素在页面上动态显示为指向另一页面的超链接。由于我有很多这样的元素加载,我有时可以看到页面加载的进度(即我可以看到逐个填充的元素)。

问题是:在我尝试在所有ajax请求完成之前单击其中一个动态加载元素的超链接时,在IE中,页面传输似乎只是暂停,直到所有元素已加载(然后在完成所有加载后执行)。但是,在其他浏览器中,在页面仍然加载时单击其中一个链接会立即执行超链接(这是所需的行为)。

有没有人见过这个?我怎样才能让IE立即响应链接点击?

1 个答案:

答案 0 :(得分:0)

嗯......我想知道IE是否将所有HTTP请求视为与AJAX连接相同?

每个浏览器最多允许2个AJAX连接到单个域。如果已经打开了2个AJAX连接,则在至少完成其中一个AJAX请求之前不会触发其他任何AJAX请求。

根据您所描述的内容,IE似乎不允许您在完成所有AJAX连接之前建立任何其他HTTP连接?

[自我注意:需要谷歌支持我说的话。]

嗯。要解决这个问题,这听起来怎么样?

  1. 进行AJAX调用时,存储代码在某处创建的XmlHttpRequest对象。 (数组/对象可能?)
  2. 将onclick事件附加到链接,当单击链接时,循环执行步骤1中的XmlHttpRequest列表并调用xmlHttpRequest.abort()取消所有调用。 (Link to API on W3C.
  3. Side注意:我想知道在IE中出现这种奇怪行为背后的原因是什么...想知道IE浏览器导航到另一个页面后是否有垃圾收集所有XmlHttpRequest对象的麻烦?