代码如下 :
<?php session_start(); $_SESSION['start']=time(); function check_abort(){ if (connection_aborted()){ $_SESSION['end']=time(); } } // 在脚本结束时调用 check_abort 函数 register_shutdown_function("check_abort"); ?>
但是,$_SESSION['end']总是空的,这是怎么回事?
代码如下 :
<?php session_start(); $_SESSION['start']=time(); function check_abort(){ if (connection_aborted()){ $_SESSION['end']=time(); } } // 在脚本结束时调用 check_abort 函数 register_shutdown_function("check_abort"); ?>
但是,$_SESSION['end']总是空的,这是怎么回事?
register_shutdown_function是脚本执行完就触发了 即页面渲染完成就会结束掉 服务端的工作就做完了 而不是用户真正停留的时间 用户停留页面的时间 还是要通过前端js去计时 最终传递给后端的
立即学习“Java免费学习笔记(深入)”;
善用搜索引擎。
http://www.codefans.net/jscss/code/4188.shtml
http://cwfmaker.iteye.com/blog/801986
1.页面停留时间不好计算,比如电脑突然断电关闭,前端js也不会触发事件发送请求,后端是不可能知道的。
2.register_shutdown_function是脚本执行结束掉用,不是页面关闭执行。
3.最方便的,前端ajax一分钟发一次请求到后端,可以把时间更新放到redis中。这样时间误差最多一分钟。
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号