多个ajax请求php后端导致反应时间慢解决方案
来源:互联网 发布:python 冒泡排序 编辑:程序博客网 时间:2024/05/19 02:30
产生的原因
var democ=new Vue({el:'#list', data:{ her:'', listData:[], listurl:ALLURL+'/index.php/Wap/Read/indexlist' }, created:function(){ this.listDll() }, methods:{ listDll:function(){ var that=this; that.$http({ method:'GET', url:this.listurl }).then(function(response){ //console.log(response.data) var obj=JSON.parse(response.data); this.her=ALLURL; this.listData=obj.data; },function(error){ }) } }});$.get(ALLURL+'/index.php/Wap/Read/indexlist', function(res){ var obj=JSON.parse(res); var Data=obj.data; } ); $.get(ALLURL+'/index.php/Wap/Read/cases', function(res){ var obj=JSON.parse(res); var Data=obj.data; } ); / $.get(ALLURL+'/index.php/Wap/Read/active', function(res){ var obj=JSON.parse(res); var Data=obj.data; } ); $.get(ALLURL+'/index.php/Wap/Read/record', function(res){ var obj=JSON.parse(res); var Data=obj.data; } );
多个界面请求,经执行后发现需要执行10秒左右时间,初以为是php与数据库交互花的时间过多导致,其实不然,真正原因是session文件锁导致。
当你向服务器发送一个Ajax请求时,PHP脚本也开启了session_start(),它的调用会锁定PHP的session文件。
你可能已经知道,PHP默认会把session数据存储在服务器上的文件中。因为仅仅只有一个PHP请求能改变同一个session文件,两个同时的PHP请求可能会造成典型的文件锁条件,因此,任何一个其他由PHP调用的对于同一个用户的session_start()请求将不得不等到第一个请求结束。
现在,大部分PHP框架会首先在主文件中使用session_start()。因此,如果你正在使用会调用session_start()的框架或者函数库,将会造成session文件锁,对于使用同一个浏览器的相同用户,这将延迟同时发送的Ajax请求。
简言之同一个客户端同时并发发送多个请求(如ajax在页面同时发送多个请求),且脚本执行时间较长,就会导致session文件阻塞,影响性能。因为对于每个请求,PHP执行session_start(),就会取得文件独占锁,只有在该请求处理结束后,才会释放独占锁。这样,同时多个请求就会引起阻塞。
解决方案
1.不用session
2.调用session_write_close()
3.利用session_set_save_handler()函数是实现自定义会话处理
阅读全文
1 0
- 多个ajax请求php后端导致反应时间慢解决方案
- 解决AJAX请求使PHP反应时间过长的问题
- ajax开发:Promise解决多个异步Ajax请求导致的代码嵌套问题
- 多个iframe中Ajax请求导致 status canceled 的原因分析
- wordpress后台加载ajax.googleapis.com导致打开速度很慢的解决方案
- ajax发送多个请求
- windows的npm导致Git慢解决方案
- 多ajax请求的各类解决方案(同步, 队列, cancel请求)
- Ajax 同时处理多个异步请求
- 实现发送多个Ajax请求
- ajax请求后返回多个jsonArray
- 多个AJAX请求问题总结
- php getimagesize 导致系统变慢
- session_write_close() PHP在访问Session数据时存在互斥情况,导致Ajax请求响应缓慢
- PHP 和 AJAX 请求
- PHP检测 ajax 请求
- php ajax 请求原理
- PHP 和 AJAX 请求
- NIFI 系统属性 System Properties之FlowFile存储库和内容库
- DG 搭建
- Machine Learning:最小二乘法数学原理及简单推导
- Linux下zip文件的压缩与解压操作
- android开屏动画
- 多个ajax请求php后端导致反应时间慢解决方案
- 图像锐化
- 常见的网页错误编码以及解决的方法
- android app开发中将表情图片上传到服务器并获取显示
- SpringBoot之Hello world篇
- Linux下运行bash脚本显示“: /usr/bin/env: "bash\r": 没有那个文件或目录
- springmvc ResponseEntity 下载文件损坏问题解决方法
- javascript中递归函数
- bzoj1211 [HNOI2004]树的计数 prufer序列+组合数