一个与 tag.js 开发使用多次异步 xhr 的时候差不多的问题,当进入页面默认有一个比较慢的 xhr,然后进行其他 xhr 的时候,必须按照顺序返回,即使前面的 xhr 比较慢,后面的比较快,查阅资料之后是 session 阻塞的问题。
是不是 session_start 导致了阻塞?
结合了 PHP 的 Session 机制,找到了阻塞的原因。由于 PHP 的 Session 信息是写入文件的,1 个客户端占有 1 个 session 文件。因此,当 session_start 被调用的时候,该文件是被锁住的,而且是以读写模式锁住的(因为程序中可能要修改 session 的值),这样,第 2 次调用 session_start 的时候就被阻塞了。
最简解决方法: 使用 session_write_close 函数,作用是 Write session data and end session,也就是写 session 的数据,同时关闭这个 session。因此,我们可以在用完 session 之后,调用这个函数关闭 session 文件即可解除锁定。一般,session 是用来记录用户身份信息的,以便 PHP 进行
身份认证,因此完全可以将 session 的读写放在页面刚开始执行的时候,在执行完以后,马上调用 session_write_close 函数即可。
session使用:
1.PHP session 的使用关键,每一个要用到 session 的脚本最开头一行一定要写上
session_start();
如果是 PHP 和 HTML 混合的文件,这个内容也必须写在 HTML 标签之前。
2.使用方法
$_SESSION['user_id'] = $_POST["user-id"];//设置session的值
if (isset($_SESSION['user_id']))//使用session的值
echo $_SESSION['user_id'];
- 版权声明:本文基于《知识共享署名-相同方式共享 3.0 中国大陆许可协议》发布,转载请遵循本协议
- 文章链接:https://www.imiowo.com/923.html [复制] (转载时请注明本文出处及文章链接)
相关文章
又是元气MAX的一天(●'◡'●)
作者:秫米介绍:来一起坐下喝杯奶茶!
文章:77篇
最后更新:23-11-01
介绍:来一起坐下喝杯奶茶!
文章:77篇
当前页面评论被关闭,原因如下:
发表评论