PHP应用:PHP编程中的Session阻塞问题与解决方法分析
《PHP应用:PHP编程中的Session阻塞问题与解决方法分析》要点: 本文实例讲述了PHP编程中的Session阻塞问题与解决方法.分享给大家供大家参考,具体如下:PHP学习 使用session过程中,在开启session后,同一浏览器,执行同一程序,不同页面会被锁.不同浏览器不会出现这种情况.PHP学习 疑问:是不是session_start导致了阻塞?PHP学习 于是,我写了几个页面测试了一下,发现是session导致了阻塞,而其他两种情况不会造成阻塞.PHP学习 查了下PHP的Bug列表,发现有人提出了这个问题:PHP学习 Description: that are using the same session. My guess is the 1st request locks the PHP官方的回复是:PHP学习 Thank you for taking the time to write to us,but this is not a bug.This is expected,the session file is locked to avoid corruption.PHP学习 结合了PHP的Session机制,找到了阻塞的原因.由于PHP的Session信息是写入文件的,1个客户端占有1个session文件.因此,当 session_start被调用的时候,该文件是被锁住的,而且是以读写模式锁住的(因为程序中可能要修改session的值),这样,第2次调用 session_start的时候就被阻塞了.PHP学习 最简解决方法:PHP学习 查了PHP的手册,发现一个session_write_close函数,作用是Write session data and end session,也就是写session的数据,同时关闭这个session.因此,我们可以在用完session之后,调用这个函数关闭session 文件即可解除锁定.一般,session是用来记录用户身份信息的,以便PHP进行身份认证,因此完全可以将session的读写放在页面刚开始执行的时 候,在执行完以后,马上调用session_write_close函数即可.PHP学习 更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP中cookie用法总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php面向对象程序设计入门教程》、《PHP网络编程技巧总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》PHP学习 希望本文所述对大家PHP程序设计有所帮助.PHP学习 (编辑:甘南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |