Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
同时的AJAX请求会导致PHP会话无法正确更新_Php_Ajax_Session_Extjs - Fatal编程技术网

同时的AJAX请求会导致PHP会话无法正确更新

同时的AJAX请求会导致PHP会话无法正确更新,php,ajax,session,extjs,Php,Ajax,Session,Extjs,在我的应用程序中,我有一个每10秒运行一次的AJAX请求,它告诉服务器用户仍在连接。当用户执行某个操作时,会向服务器发送另一个AJAX请求,该请求会在PHP$\u会话变量中增加一个数字 当这两个AJAX请求同时发生时,我似乎遇到了一些问题,$\u会话中的数字有时不会增加。我认为这是因为当两个请求同时运行时,有时增加$\u SESSION变量的请求会在另一个请求之前完成,因此最后一个请求会用旧数据“覆盖”会话。其他人有没有遇到过这个问题,或者知道如何解决这个问题?最简单的解决方法是在当前ajax请

在我的应用程序中,我有一个每10秒运行一次的AJAX请求,它告诉服务器用户仍在连接。当用户执行某个操作时,会向服务器发送另一个AJAX请求,该请求会在PHP$\u会话变量中增加一个数字


当这两个AJAX请求同时发生时,我似乎遇到了一些问题,$\u会话中的数字有时不会增加。我认为这是因为当两个请求同时运行时,有时增加$\u SESSION变量的请求会在另一个请求之前完成,因此最后一个请求会用旧数据“覆盖”会话。其他人有没有遇到过这个问题,或者知道如何解决这个问题?

最简单的解决方法是在当前ajax请求完成处理后的10秒钟内设置超时时间。因此,不要使用间隔,在完成时设置超时。

问题是由我的自定义会话处理程序(使用会话设置保存处理程序)导致的,该处理程序正在将会话信息保存到Oracle数据库中。它没有阻止两个同时修改会话的脚本。因此,为了阻止这种情况发生,我使用flock()向会话“read”处理程序添加了一个基于文件的锁。然后在“销毁”处理程序中删除文件并移除锁


这解决了问题,但现在意味着AJAX请求似乎必须按顺序运行。

您可以共享代码吗?