javascript - ajax 请求正在等待并行请求

标签 javascript php jquery ajax session

我正在做的是当页面加载时我调用两个ajax请求

fetch_list_big();
fetch_list_small();

function fetch_list_big(){
  $.post(...);
}
function fetch_list_small(){
  $.post(...);
}

顾名思义,fetch_list_big() 中的请求比 fetch_list_small 需要更多时间才能完成。 但由于 fetch_list_big 首先被调用,fetch_list_small 表示待处理,直到 fetch_list_big 返回 200。

big.php

require_once('files_same.php'); #starts session /connection / configurations etc

#Some heavy mysql stuff  #say 5 seconds

echo json(...)

小.php

require_once('files_same.php'); #starts session /connection / configurations etc

#Some light mysql stuff #say 1 seconds

echo json(...)

如何在 fetch_list_big() 之后并行调用 fetch_list_small() 并且不使其挂起?

待处理请求

/image/HWqOD.png

第一个请求很大,在服务器中花费了 5 秒

最后 3 个是小请求,应该在第一个请求之前返回,但它们正在等待处理。

第一个请求返回 200 后

/image/trTnm.png

第一个请求返回 200 后。最后 3 个请求被执行。

问题

我希望所有请求并行运行而不锁定服务器(是否有某种 session 被锁定?)

最佳答案

I want all the requests to Run Parallel without locking in server (is some kind of session is getting locked ? )

是的;只要一个脚本实例正在使用该 session ,PHP 就会阻止其他脚本访问该 session 。 (至少对于默认的基于文件的 session 存储机制是这样。)

您可以通过调用session_write_close来避免这种情况一旦您的脚本完成了 session 所需的操作。

关于javascript - ajax 请求正在等待并行请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41825485/

相关文章:

jquery - 在无逻辑 mustache 模板引擎中实现条件

javascript - C3 图表 - 工具提示的内容可点击

php - 功能需要稍作修改

php - 具有 PHP 和 MySQL 的多个依赖选择框

php - JMSSerializer 和 FOSRestBundle - 注释不起作用。 "Does not exist"

jquery - 在悬停时在传单 map 上添加图像

javascript - 通过构造函数Property和instanceof操作符设置继承

javascript - 向下移动溢出列表框,因为每个复选框都是 AUTO 未被循环选中的

javascript - D3.js - 选择知道属性的一部分

javascript - jQuery 表单后将 bool 复选框转换为 "on"和 "off"?