CNode

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

Nnovembereleven发布于13 年前最后回复12 年前11 回复10550 浏览0 收藏

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

查看回复

回复 (11)

W
wuliao49#1·13 年前

理论上是同时的

H
huangnaiang#2·13 年前

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

A
amio#3·13 年前

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

H
huangnaiang#4·13 年前

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

F
fritx#5·12 年前

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

A
alsotang#6·12 年前

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

W
wangxuq#7·12 年前

ajax是异步请求的

D
dlutwuwei#8·12 年前

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

T
tulayang#9·12 年前

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

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

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

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