xmlHttpRequest实现是否已经过优化,可以在不重新加载页面的情况下发送数千个请求?

时间:2011-02-24 10:56:00

标签: javascript ajax optimization xmlhttprequest

我们需要开发一个客户端应用程序,它必须通过HTTP协议每秒更新一些值(大约10-20个整数)(但是,HTTP服务器运行的是同一台机器,所以请求'localhost'很快)。 由于UI必须易于修改,因此决定只开发一个HTML网站并使用xmlHttpRequest更新值(实际上,使用jQuery)。

问题是客户端应该连续工作一整年而不重启......这样每小时就会发出3600个请求,每天发生86 400个请求,最终每年发出 30 758 400个请求。我非常害怕浏览器如何处理这么多的请求......有没有人对AJAX请求的“压力测试”有任何经验? 是否每天重新加载页面有助于浏览器清理内存?

3 个答案:

答案 0 :(得分:2)

第一个问题:Javascript运行时性能因浏览器而异。你最好找一个快速,稳定的浏览器,而不是担心jQuery的AJAX性能。我更担心的是保持一个浏览器渲染实例并执行一整年。

第二个问题:浏览器中的javascript不是时间精确的语言。 setIntervalsetTimeout不可靠,不保证时间安排。 jQuery的作者在Javascript时间问题上写了this article,所以如果你需要非常精确的计时,Javascript可能会导致一些问题。

第三个问题:如果你的客户需要在没有重新启动的情况下运行365天,那么选择构建HTML / JS前端对于“轻松编辑”的放样目标有点愚蠢,这不是你所做出的牺牲吗? / p>

答案 1 :(得分:1)

确保他们没有使用IE,你就可以开始了。

答案 2 :(得分:1)

xmlHttpRequest能够处理那么多查询(像彗星这样的短轮询fw这样做),但是......很多查询可能会对浏览器的响应能力产生影响,具体取决于浏览器。通过一起请求所有整数(例如,使用json数据结构),您可以轻松地将查询数量减少10-20倍。您可以查看短轮询以及它是为此目的而设计的。