在每次页面加载时,我运行session_start()
以恢复当前会话。 session.gc_maxlifetime
何时开始计算?第一次调用session_start()
并设置会话的cookie?或者计时器是否每{?1}}重启一次?
在此时间线中将session_start()
设置为大约24分钟时,会话数据应被垃圾回收
session.gc_maxlifetime
如果计时器在第一页加载 1. 12:00:00 First page load, session_start(), session cookie created
2. 12:10:00 page load, session_start()
3. 12:26:00 page load, session_start()
4. 12:55:00 page load, session_start()
时启动,那么我认为它会在加载3上进行垃圾收集。但如果它重置每session_start()
,那么它将在加载4之前收集。 / p>
我希望它是后者,因为我可以每隔几分钟做一次javascript心跳来调用运行session_start()
的页面。
如果是前者,session_start()
从创建会话cookie开始计算,我需要销毁/重新创建或重新生成_id以重置计数?
答案 0 :(得分:2)
它是从最后一次session_start()调用OR / AND写入的最后一次。我的猜测是后者,因为这将改变PHP垃圾收集器用于确定是否需要删除的“最后修改”时间戳。在这种情况下,它从最后一个脚本开始计数,使用session_start()或通过调用session_ write_ close()在脚本中间显式完成。
P.S。这将使“心跳”变得简单(在一行中):http://prototypejs.org/api/ajax/periodicalUpdater