2009-09-08 48 views
0

我有一个包含三个资料核实,其中的每一个通过部分页面开始显示包括ASP.NET页面 - 这工作得很好。通过AJAX更新多个div不一致

每个DIV包含可以通过按特定的列被寻呼或排序的条目的一个网格。这些更新通过AJAX请求完成,这也可以工作。执行与页面,这是从一个列表associateing与另一个项目的项目主要相互作用时出现

我的问题。第一个DIV包含航班列表,第二个DIV包含与航班相关联的人员列表(连同对哪个航班的引用),第三个DIV包含根本不与任何航班相关联的人员列表。利用各种UI元素 ,我可以执行诸如操作...

  1. 添加飞行
  2. 派员飞行
  3. 从飞行中删除一个人
  4. 移动人不同的飞行
  5. 删除飞行

所有这些操作都有一个或多个列表的不同作用,因此,在COM pletion,我只需调用必要的AJAX请求来更新每个DIV。

有时,一个或更多的DIV不更新的,其他时间在浏览器永远旋转和(即使我可以浏览到其他网页)挂起如果遇到另一AJAX请求。

这个调用序列是一个接一个地完成的,在继续下一个之前没有机制等待前一个调用完成,所以我怀疑有某种排队/阻塞正在进行。在研究过SO的其他主题后,我发现引用的问题是由于AJAX请求被无序处理而引起的,但我相当确信这不适用于这种情况,因为通常,哪个命令DIV被更新。

我知道浏览器对并发XMLHttpRequests的数量是有限制的,它可以一次处于活动状态,但我认为请求会排队,直到以前的请求完成。

是否有其他人遇到过类似的问题?

编辑:

我与监测和提琴手,情况出现问题时,有些请求只是简单的不会话窗口中显示出来。

+0

这是asp.net中的mvc框架? – AnthonyWJones 2009-09-08 16:38:41

+0

是的,当然是。 – belugabob 2009-09-09 07:08:26

回答

2

如果会议不提琴手现身,这意味着HTTP请求从来没有。如果浏览器在不进展的情况下旋转,则表明HTTP连接池耗尽。

这是否仅与特定浏览器发生?如果是IE6或7,运行fixHTTPMax.reg并重新启动后是否出现问题?

+0

嗯,有趣的想法。不幸的是,这似乎不太可能,因为我只能同时发出3个请求,而您提供的修复显然是为了克服XP SP2默认的10个并发连接。我也不确定让所有用户(即使是我的少数用户)修改浏览器设置的实用性。此外,以间歇性错误的方式,今天早上似乎没有发生,所以我必须推迟一个确定的答案,直到后来。与此同时,我会奖励你10个QI积分(如果你不是来自英国的话,可以积极参与),以获得有趣的结果。 – belugabob 2009-09-09 07:24:38

+0

哦,我并不是建议你让用户改变他们的连接限制,我只是试图确定这是否是HTTP连接池问题。 (顺便说一下,你所指的TCP/IP“挂起打开”限制与HTTP活动连接限制无关)。 – EricLaw 2009-09-10 01:32:17

+0

好的,要点 - 将进一步调查。 – belugabob 2009-09-10 15:31:55