加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – session_write_close在查询之前调用它时会做什么?

发布时间:2020-12-13 21:51:40 所属栏目:PHP教程 来源:网络整理
导读:我想知道session_write_close()做了什么.我发现手册有点模糊. 我有一些非常大的SELECT查询.在那些SELECT查询之前,我正在调用session_write_close(),在查询之后我再次调用session_start(). 您可能想知道为什么我这样做,如果我不这样做并且用户正在执行其中一
我想知道session_write_close()做了什么.我发现手册有点模糊.
我有一些非常大的SELECT查询.在那些SELECT查询之前,我正在调用session_write_close(),在查询之后我再次调用session_start().

您可能想知道为什么我这样做,如果我不这样做并且用户正在执行其中一个SELECT查询并中止它们(例如尝试打开另一个页面),则用户无法打开新页面(或者必须等待相当长).我认为因为脚本正在等待大型查询完成.

所以我的问题:
session_write_close()在查询之前调用它时究竟做了什么?

为什么用户在打开新页面时,在中止查询时不必等待(在查询之前使用session_write_close())?

提前致谢

解决方法

我希望下面的图表有助于理解发生了什么;我们谈论的是同一个用户的会话(即同一个会话ID):

script a             | lock |    script b
---------------------+------+-----------------
start

open session      <- | yes  |    start

do stuff

close session     -> | yes  | -> open session

do heavy queries     |      |    do stuff

open session      <- | yes  | <- script ended

script ended      -> | no   |

当你不打算使用它时关闭会话,暂时或者直到脚本结束,使其可用于另一个脚本.

请注意,一旦其他脚本运行,会话数据可能已被更改.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读