• 一、场景
  • 二、可能的原因
  • 三、解决办法
  • 四、参考资料

一、场景

虽然是异步把请求发出去了,但返回结果顺序却不对;现在要第一个AJAX把结果返回了,再返回第二个AJAX的结果;(第一个大概执行5秒,第二个就是一个输出状态的操作,执行很快)
我现在就想实现,在第一个AJAX请求的过程中,第二个AJAX可以不断的返回当前状态

  • Ajax代码如下
$.ajax({url: '/index/test/method1',data: {},type: 'post',success: function(res) {console.log(res);},error: function(res) {console.log(res);}
});$.ajax({url: '/index/test/method2',data: {},type: 'post',success: function(res) {console.log(res);},error: function(res) {console.log(res);}
});
  • php代码如下
public function method1()
{$param = input('name');$result = $this->service->getData1();
}public function method2()
{$param = input('name');$result = $this->service->getData2();
}

二、可能的原因

  • 用到session了吧,会导致其他请求被挂起。session会挂起其他的请求,要改成cookie验证或者其他非session类的验证。

三、解决办法

  • 使用 session_write_close() 关闭SESSION锁。
public function method1()
{//    ob_end_flush(); //视情况而定:使用session_write_close()可能无法立即关闭SESSION锁,所以在这个方法之前加上:ob_end_flush()。session_write_close(); //用 session_write_close() 关闭SESSION的写锁,这适合SESSION保存为File的情况。如果SESSION保存在Redis,则不需要。$param = input('name');$result = $this->service->getData1();
}public function method2()
{//    ob_end_flush(); //视情况而定:使用session_write_close()可能无法立即关闭SESSION锁,所以在这个方法之前加上:ob_end_flush()。session_write_close(); //用 session_write_close() 关闭SESSION的写锁,这适合SESSION保存为File的情况。如果SESSION保存在Redis,则不需要。$param = input('name');$result = $this->service->getData2();
}

四、参考资料

  • Ajax异步请求PHP服务器,无阻塞响应的解决方案
  • asp.net/asp网站浏览器打开一个长时间运行的页面同时打开其他页面为什么被挂起
  • jquery同时发送两个异步ajax请求,但数据却是按同步顺序返回
  • PHP & Sessions: Is there any way to disable PHP session locking?

PHP:同时发送多个异步ajax请求,但数据却是按同步顺序返回相关推荐

  1. ajax背景、ajax对象、ajax状态、ajax与http、ajax请求数据接口、同步与异步、ajax请求XML数据、封装ajax函数、artTemplate简介、同源策略和跨域请求、JSONP

    AJAX简介: ajax背景: 1.AJAX(Asynchronous JavaScript And Xml)异步的 JavaScript 和 XML:ajax是浏览器提供的一套API,最早出现在谷歌 ...

  2. ajax. jquery. 异步,jQuery之异步Ajax请求使用

    $.ajax({type:'',data:'',async:''...}) 参数: 1.cache: true缓存页面 false 不缓存页面 (默认: true,dataType为script和js ...

  3. Promise解决多个异步Ajax请求导致的代码嵌套问题(完美解决方案)

    这篇文章主要介绍了用Promise解决多个异步Ajax请求导致的代码嵌套问题(完美解决方案),需要的朋友可以参考下 问题 前端小同学在做页面的时候,犯了个常见的错误:把多个Ajax请求顺序着写下来了, ...

  4. ajax调用api改表格数据库,【django基础】django接口 异步ajax请求 导出数据库成excel表(包裹前端后端)...

    py文件: from django.utils.http import urlquote from rest_framework.views import APIView from django.sh ...

  5. python爬虫之 爬取案例网页ajax请求的数据

    本篇案例以这个网站为例, 阿里云智能logo设计,用requests抓取这个网站页面的时候是抓取不到生成的logo图片的,因为数据不是直接就存储在html页面里的,ajax请求在不重新加载整个页面的情 ...

  6. vue使用ajax提交数据,vue使用ajax请求后台数据的方法

    vue使用ajax请求后台数据的方法 发布时间:2020-10-15 16:54:41 来源:亿速云 阅读:108 作者:栢白 这篇文章主要介绍了vue使用ajax请求后台数据的方法,具有一定借鉴价值 ...

  7. jquery中ajax请求后台数据成功后既不执行success也不执行error解决方法

    jquery中ajax请求后台数据成功后既不执行success也不执行error解决方法 参考文章: (1)jquery中ajax请求后台数据成功后既不执行success也不执行error解决方法 ( ...

  8. ajax 请求成功 再执行javascript,jquery中ajax请求后台数据成功后既不执行success也不执行error的完美解决方法...

    jquery中ajax请求后台数据成功后既不执行success也不执行error,此外系统报错:Uncaught SyntaxError: Unexpected identifier at Objec ...

  9. 调用$.ajax不成功,jquery中ajax请求后台数据成功后既不执行success也不执行error的完美解决方法...

    jquery中ajax请求后台数据成功后既不执行success也不执行error,此外系统报错:Uncaught SyntaxError: Unexpected identifier at Objec ...

  10. JS 操作 HTML 和 AJAX 请求后台数据

    为某个元素插入值,添加属性,添加子元素 1 <div class="col-sm-6"> 2 <select class="form-control&q ...

最新文章

  1. java语言与www技术形成性考核册_电大Java语言与WWW技术形成性考核程序题
  2. WordCount运行详解
  3. java执行mongodb语句_java下执行mongodb
  4. sizeWithFont 不是线程安全。
  5. 3des加密 java php_php 3DES加密如何兼容Java
  6. C语言520心形表白,初学者福利!!
  7. 解释型语言和编译型语言的区别_从泛型的使用情况看出你对语言的理解程度(2)...
  8. 1003 Emergency
  9. 最小生成树 Kruskal算法 Prim算法
  10. linux系统进入救援模式
  11. 对麦克纳姆轮辊子的理解
  12. kic炉温测试软件中文版,KIC炉温测试仪-KIC2000炉温测试
  13. 前端js获取文件名、后缀,截取文件名后缀
  14. 红孩儿编辑器的模块设计9
  15. pcf8563c语言程序,IIC的PCF8563实用时钟程序(iccavr)
  16. 华科尔d10设置教程_华科尔D10刷Deviation设置参数求教
  17. Android 车机初体验: Auto,Automotive 傻傻分不清楚?| 开发者说·DTalk
  18. office2016 下载路径
  19. 《分析服务从入门到精通读书笔记》第一章、维度数据仓库(4)
  20. Python tkinter+文件操作 实现学生信息管理系统

热门文章

  1. Binary Tree Right Side View 二叉树右视图
  2. 浪潮服务器怎么获取cpu信息,浪潮获取cpu、内存、硬盘等信息(redfish协议+restfull协议)...
  3. redis java 下载_linux系统下安装redis以及java调用redis
  4. apache 压缩html,Apache开启Gzip压缩设置方法
  5. settings sync 怎么用_用好这7个VS Code插件,前端编程效率蹭蹭涨
  6. 按照软件的模板规范要求,修改了模板中的字体大小,为何展示时,字体并未发生变化?
  7. 雪花算法详解及存在问题
  8. Kafka对Java程序员有多重要?连阿里都在用它处理亿万级数据统计
  9. 程序人生,程序猿要把编程一直学习下去吗?
  10. [个人笔记] 关于linux的常见问题合集