【发布时间】:2011-07-27 18:26:18
【问题描述】:
我有一个软件设计问题,关于处理依赖于多个(但大多是连续的,而不是同时的)对服务器的短期 AJAX 调用的客户端 JavaScript 程序的最佳方式是什么?对用户交互的响应[在我的特殊情况下,它将是一个 facebook-GAE/J 应用程序,但我相信这个问题与任何客户端(浏览器)/服务器设计有关]。
首先,我问了这个问题:What is the life span of an ajax call?。基于 BalusC 的回答(我鼓励它阅读它there),简短的回答是“这取决于浏览器”。所以,现在我无法真正控制服务器发送响应后发生的事情。
如果 AJAX 调用的主要用途是从服务器仅检索一次数据,是否可以手动销毁它? xhr1.abort() 会这样做吗?
或者,最好的选择就是这样?手动关闭每个连接(如果可能的话)会不会给每个调用增加太多开销?
是否可以手动设置每个域的限制?
最后(但并非最不重要!),我真的应该担心这个吗?多少次调用足以开始延迟浏览器(特别是一些带有 BalusC 在另一个问题中提到的泄漏错误的 IE 浏览器?请记住,这是我的第一个 javascript/java servlets 项目。
提前谢谢你
【问题讨论】:
-
我不是真正的 UI 或 JavaScript 程序员,可能是错的,但我似乎记得你可以保持多少连接有某种上限(取决于浏览器)同时向同一主机打开(我认为这就是为什么像地图应用程序使用不同命名的域来通过多个连接获取数据的原因)
-
@esaj:这是并发连接,是的,有一个限制。该限制取决于浏览器。它可以低至 2,并且在很长一段时间内一直那么低。最近的桌面浏览器往往更多地在 6-8 范围内,但移动浏览器坚持较低的数字。
-
所以浏览器限制已经很低(我期待它会更大)
-
是的,但同样,这是对并发连接的限制,我真的,真的应该在上面说它是每台服务器。因此,与 S3 或
www服务器的连接不超过六个。这是几年前的一个很好的综述:stevesouders.com/blog/2008/03/20/…
标签: java javascript ajax servlets