跳到主要内容
CNode

Ajax请求是并发还是串行的?

社区
Nnovembereleven发布于 13 年前最后回复 12 年前
11105640

for (var i = 0; i < 100; i++) { $.get('http://localhost', { id:123}, function(res){}); } 例如这样的代码,浏览器是同时请求的吗?

查看回复

回复 (11)

T
tulayang#1012 年前

你并没有用Worker创建进程,本质上并不是并发, 只有一个js进程。

ajax中的js只是连续执行了$.get()函数里边的代码, 而get内部的tcp通信,则是由操作系统与目标打交道, 操作系统是支持并发的, 如果前边的没有响应完, 后边的可以继续并发。

跟 new Worker('a.js')使用js子进程是不一样的。

D
dlutwuwei#912 年前

这能说浏览器端是并发的,服务器端可能会有限制,我写过这类脚本,被坑惨了,看似并发发送请求,服务器却是一个一个返回,并发的6个ajax,因为处理时间比较长,全是挂起,一个处理返回,下一个才被处理。

W
wangxuq#812 年前

ajax是异步请求的

A
alsotang#712 年前

并发,不过也受同一域名的最大连接数限制。

F
fritx#612 年前

$.get(url, { async: false/true }, callback) async默认是true

H
huangnaiang#413 年前

建议lz看看这篇文章:http://elseif.me/archives/103

A
amio#313 年前

并发,代码中的匿名函数 function(res){} 就是回调用的了

H
huangnaiang#213 年前

不是,浏览器会另起线程来发起http请求,请求完成后会把回调函数塞到事件队列里面进行

W
wuliao49#113 年前

理论上是同时的

参与回复

登录后即可参与回复。登录