这个问题是我之前的问题的后续问题:以前的问题

所以我设置我的页面以启动ajax调用以启动处理某些记录。在每条记录之后,它会更新另一个表中的一行,以跟踪此过程的状态。在第一次ajax调用之后,我又启动了一次。它是一个Ajax.PeriodicalUpdater,它设置为命中一个文件,该文件只是在数据库中查询该行并返回原始进程的状态。

所以这完全正常......只要提供状态更新的文件在我当前的应用程序之外。如果我把文件放在我的应用程序中,那么它无法正常工作。如果我观看firebug,则在原始的ajax调用完成之前,PeriodicalUpdater调用不会返回任何内容,它只是挂起,就好像文件挂起而没有返回任何内容。

整个应用程序只在我们正在使用的基本框架内运行。没有什么可以疯狂的,只是处理路由,基本的模板方面等...所以所有这些函数/文件都在这个应用程序中,所有这些ajax调用都通过它进行路由。

可能导致这样的事情?

有帮助吗?

解决方案

这可能是由于浏览器支持的并发连接的限制一个特定的域名?

其他提示

这是由PHP会话序列化引起的。会话数据被锁定,直到每个请求的PHP进程写完为止,因此同一会话中的其他请求将一直排队,直到锁定被释放。

如果你的AJAX请求需要访问会话状态,请读出你需要的信息,然后尽可能早地在代码中使用 session_write_close()来释放这些锁。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top