允许运行php脚本的多个实例

Yaw*_*awn 5 php ajax simultaneous-calls

我正在尝试使用ajax同时向php脚本发出多个请求,但是,它似乎一次只做1个实例,我无法连接到下一个调用,直到上一个完成.我需要做什么才能让它同时完成所有这些操作?我在Windows上使用apache(xampp).我也在我的unix服务器上测试了这个,同样的事情也发生在那里.

Pas*_*TIN 15

从理论上讲,没有什么能阻止一个PHP脚本并行执行多次 - 否则,很多网站都会出现大问题;-)

所以,在你的情况下,可能存在一些阻止这种情况的锁定机制......


如果您的脚本正在使用会话,并且这些会话是基于文件的(这是默认的),那些会话可能会导致此类问题:使用默认会话处理程序,不可能有多个文件访问相同的会话数据(即同时对应于给定用户的会话数据 ; 这是为了防止一个脚本覆盖另一个脚本的数据,并且可能不应该被禁用.

因此,如果您的脚本正在使用会话:您是否可以停止使用会话?
如果没有,您应该在不需要它们时立即尝试关闭它们 - 解锁用于存储它们的文件.

以下是手册页的引用session_write_close,关于:

会话数据通常在脚本终止后存储而不需要调用session_write_close(),但是由于会话数据被锁定以防止并发写入,因此任何时候只有一个脚本可以在会话上运行.
将框架集与会话一起使用时,由于此锁定,您将体验到逐个加载的框架.
只要对会话变量进行了所有更改,就可以通过结束会话来减少加载所有帧所需的时间.