我正在读关于在长轮询的文章Nolithius 。 根据部分PHP睡在整个会议上 ,写的是session_write_close
功能应以防止未来死锁整个会话调用。 究竟是由死锁在这里是什么意思? 这是否意味着,如果没有这个功能,从客户端打开的同一领域的其他页面将无法接收数据AJAX从其他脚本(像这样的),直到这个已经执行完毕并返回结果? 为什么发生这种情况? 如何才能session_write_close
这里帮助吗? 不会使用它删除从客户端的所有个性化,他已经从这个请求中接收数据后,他从该域请求一个页面下一次?
Answer 1:
这是我的理解:
当基于文件会话用于每个请求字面上锁定该文件,直到请求的结束。
这意味着下一个请求(也使用会话数据),必须等待被释放锁。
这是为了避免会话数据损坏。
使用session_write_close()
将清理(但不丢失任何会话数据),并释放锁更早上的文件允许其它请求继续。
这是特别是如果你有睡眠很多的脚本很好的做法,很可能。
文章来源: Why should session_write_close be used in long polling?