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

时间:2010-07-18 19:12:17

标签: php ajax simultaneous-calls

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

1 个答案:

答案 0 :(得分:15)

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

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


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

因此,如果您的脚本正在使用会话:您可以停止使用会话吗?
如果没有,你应该在不需要它们时尽快关闭它们 - 解锁用于存储它们的文件。

以下是session_write_close手册页中引用的内容:

  

会话数据通常存储在之后   你的脚本终止没有   需要调用session_write_close(),   但是当会话数据被锁定时   防止并发写入只有一个   脚本可以在任何会话上运行   时间即可。
使用框架集时   与会议一起   体验框架加载一个   一个是由于这种锁定。你可以   减少加载所有的时间   尽快结束会话   作为会话变量的所有更改   完成了。