【问题标题】:Updating multiple DIVs via AJAX is inconsistent通过 AJAX 更新多个 DIV 不一致
【发布时间】:2013-01-17 15:44:27
【问题描述】:

我有一个包含三个 DIV 的 ASP.NET 页面,每个 DIV 最初都通过部分页面包含显示 - 这工作正常。

每个 DIV 都包含一个条目网格,可以按特定列进行分页或排序。这些更新是通过 AJAX 请求完成的,这也可以正常工作。

我的问题发生在与页面进行主要交互时,即将一个列表中的项目与另一个列表中的项目相关联。第一个 DIV 包含一个航班列表,第二个 DIV 包含一个与航班相关联的人员列表(以及对哪个航班的引用),第三个 DIV 包含一个根本与任何航班无关的人员列表. 使用各种ui元素,我可以进行诸如...

之类的操作
  1. 添加航班
  2. 将人员分配到航班
  3. 从航班中移除人员
  4. 将一个人转移到不同的航班
  5. 删除航班

这些操作中的每一个对一个或多个列表都有不同的影响,因此,完成后,我只需调用更新每个 DIV 所需的 AJAX 请求。

有时,一个或多个 DIV 不会更新,有时浏览器会永远旋转并且(即使我可以导航到其他页面)如果遇到另一个 AJAX 请求就会挂起。

这一系列调用一个接一个地完成,没有机制等待前一个调用完成后再进行下一个调用,因此我怀疑存在某种排队/阻塞。在调查了关于 SO 的其他主题后,我发现对由乱序处理的 AJAX 请求引起的问题的引用,但我相当确定这不适用于这种情况,因为通常哪个顺序无关紧要DIV 已更新。

我知道浏览器对可以同时处于活动状态的并发 XMLHttpRequest 的数量有限制,但我认为请求会排队等待之前的请求完成。

有没有人遇到过类似的问题?

编辑:

我已经使用 Fiddler 监控了情况,当问题发生时,一些请求根本不会显示在会话窗口中。

【问题讨论】:

  • 这是asp.net中的mvc框架?

标签: jquery asp.net-mvc ajax


【解决方案1】:

如果会话未显示在 Fiddler 中,则表示从未发出过 HTTP 请求。如果浏览器一直在旋转而没有任何进展,则表明 HTTP 连接池已耗尽。

这只发生在特定浏览器上吗?如果是IE6或7,运行fixHTTPMax.reg重启后会出现问题吗?

【讨论】:

  • 嗯,有趣的想法。不幸的是,这似乎不太可能,因为我一次只发出 3 个请求,而您提供的修复显然是为了克服 XP SP2 默认的 10 个并发连接。我也不确定让所有用户(即使是我的少数用户)修改他们的浏览器设置的实用性。此外,以间歇性错误的方式,今天早上似乎没有发生,所以我不得不推迟一个明确的答案,直到以后。同时,我会奖励你 10 QI 积分(如果你不是来自英国,我会奖励你一票)。
  • 哦,我并不是建议您让您的用户更改他们的连接限制,我只是想确定这是否是 HTTP 连接池问题。 (顺便说一句,您所指的 TCP/IP“待打开”限制与 HTTP 活动连接限制无关)。
猜你喜欢
  • 1970-01-01
  • 2011-12-26
  • 1970-01-01
  • 2020-09-09
  • 1970-01-01
  • 2013-07-22
  • 1970-01-01
  • 2012-02-17
  • 1970-01-01
相关资源
最近更新 更多