codeigniter中的旧代码库2.1.4阻塞会话&阿贾克斯

时间:2016-03-21 20:12:28

标签: javascript php ajax session codeigniter-2

我的会话工作正常,我有一个使用TankAuth的复杂的自定义用户权限系统。我把这个项目作为一个小项目开始,它变成了一些可怕的东西。大多数数据是通过javascript前端获取异步的。它现在基本上是一个API,但有一些例外。

我的问题是关于会议。我知道CI 3(或更高版本的某个地方)改变了会话库,允许多个ajax调用不相互阻塞。我注意到,在运行多个ajax请求时,我的应用程序在延迟时间之后一起取出结果。我确信这是因为阻止了会话,但我担心由于安全问题而尝试修复。

如何在没有安全风险的情况下阻止会话中的ajax呼叫相互阻塞?

1 个答案:

答案 0 :(得分:1)

首先,我相信您正在使用"阻止"对于两件不同的事情......

下面:

  

我知道CI 3(或更高版本的某个地方)更改了会话库,以允许多个ajax调用不会相互阻塞。

在这里:

  

我注意到,在运行多个ajax请求时,我的应用程序在延迟时间后一起取出所有内容。我确信这是因为阻止了会议

CodeIgniter 3并没有改变会话库 - 它用一个全新的替换它,其中一个原因是多个请求不会干扰彼此(第一次引用)。

然而,实现这一目标的方法是使用锁定(或你所说的"阻止"在第二个引用和你的问题中)。你无法避免这种情况。

您可以做的是,只要他们不再需要修改session_write_close()数组,就会在您的请求中调用$_SESSION - 这将释放锁并关闭当前请求的会话,但仍保留$_SESSION个内容以供阅读。