jquery中循环发送ajax请求,是否相当于多线程发送请求? 30C

是这样的,用jquery循环发送ajax异步请求,去访问系统的某个方法;这种方式是不
是就相当于多个用户同时访问这个方法?这个问题我有些疑问,因为,就算是ajax异步请求,他也还是一个一个来的啊,,,这就有些尴尬了,麻烦大家解惑。。。

6个回答

js是单线程的,没有多线程概念,ajax的异步都是居于回调来实现的。至于同时发送多少个请求受限于浏览对同一个域名的请求数量,并不是一个一个来。

ajax的返回并不是按照你先发送就会先返回,这个依赖于网络了,如果第一个刚请刚好网络慢走了其他的线路说不定最后一个返回。

需要注意的是如果你的服务器使用到了session,同一浏览器同一个网站的请求使用同一个session,服务器如果对session做同步锁定操作,那么就会一个处理完毕再到下一个,没用到session就看你服务器并发处理请求的能力了。

session同步可以参考这个2个
asp.net/asp网站浏览器打开一个长时间运行的页面同时打开其他页面为什么被挂起
php同一个浏览器共用session并发挂起

showbo
支付宝加好友偷能量挖 回复luyaran: ajax调用你的发送接口?那建议是服务器端来做,服务器端主要资源够线程随便开。客户端的ajax的话你请求的同一个域名,每个浏览器对同一个域名的并发请求数量有限制的,具体多少不太清楚,可能就10多个吧,然后你有30多个就得等待前面的返回了才能继续下一个ajax请求了。服务器端可以开30+以上的线程吧,前提资源够
2 年多之前 回复
luyaran
luyaran 恩,这个我有考虑到,我具体说明一下情况。需求是这样的:我的系统需要向三十多个网站发送post请求提交数据,这是前提;之前的方案是挨个循环使用curl模拟提交,不过时间太长,所以就考虑到了多线程。于是就产生了两种方案:第一种就是像标题说的,使用ajax异步请求,循环发送请求,不过走的还是以前的方法,只不过多开了几个线程同时调用这个方法而已,第二个方案就是使用curl多线程发送数据,这个可以同时发送,curl多线程我得出过运行时间,比以前缩短了好多,但是ajax异步请求的话,原谅我现在还没有思路,请各位大神比较一下两种方案
2 年多之前 回复

一句话:浏览器是多线程的。
js引擎的处理方式是单线程的,但为什么却可以发送异步请求呢。因为,浏览器中,有很多的多线程处理技术。
至于你的问题,从一方面来说是对的。但只是一方面。

用jquery when试下

jQuery中的when实现多个AJAX请求对应单个回调

jquery的ajax可以同步也可以异步,

一台电脑除非兴建线程相当于多个用户同时访问,送ajax异步请求,因为 js是单线程的,ajax的确是多线程的,可以同时从浏览器端请求多次,但事件状态变换后回调时要等待队列。

weixin_38290853
weixin_38290853 回复邓少峰: 还队列呢···我也是醉了··
2 年多之前 回复
qq_34730277
南宫文凯 jquery的ajax可以同步也可以异步,
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问