一个页面同时发起多个ajax请求,会出现阻塞情况

beckjin 2014-02-24 10:04:57
一个页面同时发起多个ajax请求,会出现阻塞情况,如何才能处理好这种情况,加快页面相应速度!求指教
...全文
39971 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
BurningBear 2015-08-19
  • 打赏
  • 举报
回复
引用 20 楼 rybby 的回复:
我知道原因出在哪里了,是php的session。执行session_start();后其它进程就无法对session文件进行读或写操作,必须等到该进程结束后才能开始下一个进程。解决的方案是不使用session或用session_write_close();关闭session以让其它进程有操作权限。
正解,我也遇到了同样的困扰!
Mr_yyy 2014-08-26
  • 打赏
  • 举报
回复
ajax是异步操作,如果你那些操作能分清先后顺序,尽量写在回调函数中,这样才能保证他们的有序进行,否则,神也不知道谁先谁后,就会出错啦
有理想的草根 2014-08-25
  • 打赏
  • 举报
回复
以前做过的一个项目也是多个AJAX提交的问题~~主要是AJAX嵌套,最后的解决方案,是尽可能只使用一次AJAX,即使要多资AJAX处理,也需要将AJAX尽可能简化,可以使用异步,同步,异步交叉方式。 因为在同步方式下,需要回传数据才能往下走,结合起来感觉会好些。用FF的firebug看看AJAX了几次,可以简化一定要简化。 把回传的数据,保存到JS变量,消耗客户端缓存总比服务器端好些。 再者,没什么好的方法。
绿苹果果 2014-08-23
  • 打赏
  • 举报
回复
AJAX嵌套了?
成都-狗蛋儿 2014-08-20
  • 打赏
  • 举报
回复
如果没有加定时器,轮询的情况下,是不会发生这种情况的,这个还会考虑请求返回的数据大小。比如你做一个实时监控的话,有可能阻塞。。。平常的话 应该不会
锐白 2014-08-16
  • 打赏
  • 举报
回复
我知道原因出在哪里了,是php的session。执行session_start();后其它进程就无法对session文件进行读或写操作,必须等到该进程结束后才能开始下一个进程。解决的方案是不使用session或用session_write_close();关闭session以让其它进程有操作权限。
锐白 2014-08-16
  • 打赏
  • 举报
回复
我也遇到了这个问题,ajax是不会阻塞的,是php阻塞了。可以做个测试,在客户端同时发起几个ajax请求,在服务端对请求都sleep5秒,后面的请求要等到前面的请求处理完成的后才开始处理。举个例子,同时发5个ajax请求,如果php并发处理这5个请求的话,最多经过5-6秒返回所有的请求处理。但php好像不支持同一个客户端的多个请求并发处理,所以要经过25秒才处理完所有的请求,不知用iframe有没有这样的情况。
oTyg 2014-05-14
  • 打赏
  • 举报
回复
js客户端处理下啊, ie6我记得同时只有3个还是6个的限制,别全去同时提交啊,这样和刷新页面有多大的区别。分步加载吗;
  • 打赏
  • 举报
回复
ajax只要不设置为同步的应该就不会阻塞吧,可能是你的服务端的程序问题吧
wuhuzhangwei 2014-04-28
  • 打赏
  • 举报
回复
我这边也遇到了这个问题 场景:用了jquery的portal,portal里面比如说有20个.net 的用户控件(ascx),每个控件都发送ajax请求,请求回来修改dom。 结果:客户端CPU达到100%,加载速度很慢。 猜测:ajax返回时,由于修改了dom元素,导致主进程需要渲染,那么整个运行队列肯定会被阻塞(讨论的是单进程浏览器),所以就导致整个进程会被阻塞住。 不知道是不是这个道理?
  • 打赏
  • 举报
回复
浏览器端进行异步Ajax请求并不会阻塞。你可以让你的服务器端仅即刻返回“假数据”,看看你的浏览器端是否会阻塞。 不知道你服务器端如何处理的,无法瞎猜原因。 只是建议你先进行上述测试,区分出到底是浏览器端问题还是服务器端问题。
码无边 2014-04-04
  • 打赏
  • 举报
回复
ajax在异步的情况下是不会出现堵塞的。
百变猪娃娃 2014-03-25
  • 打赏
  • 举报
回复
引用 11 楼 showbo 的回复:
[quote=引用 10 楼 whwfwfy 的回复:] [quote=引用 9 楼 showbo 的回复:] [quote=引用 7 楼 whwfwfy 的回复:] [quote=引用 2 楼 showbo 的回复:] 用到session了吧,导致其他请求被挂起,和ajax并发请求没关系,除非ajax设置为同步的
我要到后台去存session,那么该如何做使得不阻塞呢?[/quote] 不要用session,改为cookie之类的,如果是敏感数据,md5加密下cookie值,参考:http://bbs.csdn.net/topics/390718846[/quote] 谢谢大哥,那么SESSION会用到什么地方呢?只是用于存登录用户ID吗?[/quote]一般是存储id用,好在后台依据id读取相关的数据,当然你存用户名也行,但是比较麻烦读数据[/quote] 谢谢!
卖水果的net 2014-03-25
  • 打赏
  • 举报
回复
不妨把代码贴上来。
Go 旅城通票 2014-03-25
  • 打赏
  • 举报
回复
引用 10 楼 whwfwfy 的回复:
[quote=引用 9 楼 showbo 的回复:] [quote=引用 7 楼 whwfwfy 的回复:] [quote=引用 2 楼 showbo 的回复:] 用到session了吧,导致其他请求被挂起,和ajax并发请求没关系,除非ajax设置为同步的
我要到后台去存session,那么该如何做使得不阻塞呢?[/quote] 不要用session,改为cookie之类的,如果是敏感数据,md5加密下cookie值,参考:http://bbs.csdn.net/topics/390718846[/quote] 谢谢大哥,那么SESSION会用到什么地方呢?只是用于存登录用户ID吗?[/quote]一般是存储id用,好在后台依据id读取相关的数据,当然你存用户名也行,但是比较麻烦读数据
百变猪娃娃 2014-03-25
  • 打赏
  • 举报
回复
引用 9 楼 showbo 的回复:
[quote=引用 7 楼 whwfwfy 的回复:] [quote=引用 2 楼 showbo 的回复:] 用到session了吧,导致其他请求被挂起,和ajax并发请求没关系,除非ajax设置为同步的
我要到后台去存session,那么该如何做使得不阻塞呢?[/quote] 不要用session,改为cookie之类的,如果是敏感数据,md5加密下cookie值,参考:http://bbs.csdn.net/topics/390718846[/quote] 谢谢大哥,那么SESSION会用到什么地方呢?只是用于存登录用户ID吗?
Go 旅城通票 2014-03-24
  • 打赏
  • 举报
回复
引用 7 楼 whwfwfy 的回复:
[quote=引用 2 楼 showbo 的回复:] 用到session了吧,导致其他请求被挂起,和ajax并发请求没关系,除非ajax设置为同步的
我要到后台去存session,那么该如何做使得不阻塞呢?[/quote] 不要用session,改为cookie之类的,如果是敏感数据,md5加密下cookie值,参考:http://bbs.csdn.net/topics/390718846
快乐起航2020 2014-03-23
  • 打赏
  • 举报
回复
围观大神们的精彩回答
百变猪娃娃 2014-03-23
  • 打赏
  • 举报
回复
引用 2 楼 showbo 的回复:
用到session了吧,导致其他请求被挂起,和ajax并发请求没关系,除非ajax设置为同步的
我要到后台去存session,那么该如何做使得不阻塞呢?
百变猪娃娃 2014-03-23
  • 打赏
  • 举报
回复
引用 2 楼 showbo 的回复:
用到session了吧,导致其他请求被挂起,和ajax并发请求没关系,除非ajax设置为同步的
我用ajax到后台操作session时,会遇到楼主的情况。 那么该如何避免呢?
加载更多回复(5)

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧