session文件存储导致的页面阻塞问题解决方法
小小酥
2021-08-19
390
问题表现
使用了session的两个页面,一个页面在加载中的时候,打开另一个页面会非常缓慢,页面阻塞。
问题原因
在PHP语言的session默认存储在文件中,使用session_start()方法
之后就会对该sessionId文件锁定,直到还脚本执行完毕才存入文件和解锁,这就会导致页面一个页面阻塞。
解决方案
方法一:更换session存储方式
可以将PHP的session存储方式改为Redis或者Memcached存储
方法二:优化session写法
在写入session后立刻使用session_write_close()
方法,对session文件进行解锁即可。
特别注意,在使用此方法解锁后,session可正常读取,但是要继续写入session,需要再次使用session_start()
方法!
版权声明:
原创文章,转载时必须以链接形式注明原始出处及本声明。