异步JavaScript问题 - 忘记忘记

时间:2009-10-13 15:15:31

标签: javascript asynchronous

我正在尝试在我们的某个应用程序中提高Web方法的性能。

我已经可以在单个服务器上运行Web方法了,所以我想我会尝试拆分进程以便它在多个服务器中运行。

目前,xmlhttp请求传递一个数组(quepasatio),其中包含Web方法要处理的所有对象,请参阅下面的代码:

xmlHttp.send(“object =”+ quepasatio +“& Type =”+ Type +“& ToId =”+ Guid +“& ToName =”+ Name);

我所做的是将quepasatio数组拆分为两个并将xmlhttp包装在for循环中,但这似乎不会加快进程。

我要做的是在不等待响应的情况下发送xmlhttp请求,以便在第一个请求之后立即发送第二个,第三个...... nths请求。

有什么想法吗?

TIA

3 个答案:

答案 0 :(得分:2)

将您的打开方法更改为:

xmlHttp.open("GET", url, true);

这将使你的发送呼叫异步;更多信息here

答案 1 :(得分:1)

你可能一次性发送所有内容并让服务器将其分解。许多浏览器都有连接限制,限制了他们可以使用服务器挂起的请求数量,您可能会碰到这一点。

将所有内容发送到代理,然后对其进行分配意味着单个连接可以在发送后立即关闭。但是,你还需要一些轮询机制来获得部分结果(如果这就是你所追求的),这样也会使问题复杂化。

答案 2 :(得分:0)

这不会加速进程的原因是请求在服务器上排队。服务器每次只处理一个请求。

如果您希望以并行方式启动呼叫,则必须使Web服务无会话,以​​便不对请求进行排队。