Heim  >  Artikel  >  Backend-Entwicklung  >  javascript - 怎样纪录用户在某个页面停留的时间?

javascript - 怎样纪录用户在某个页面停留的时间?

WBOY
WBOYOriginal
2016-06-06 20:18:501428Durchsuche

代码如下 :

<code>     <?php session_start();
    $_SESSION['start']=time();    
     function check_abort(){
              if (connection_aborted()){
                $_SESSION['end']=time();
                }
              }

// 在脚本结束时调用 check_abort 函数
register_shutdown_function("check_abort");
?></code>

但是,$_SESSION['end']总是空的,这是怎么回事?

回复内容:

代码如下 :

<code>     <?php session_start();
    $_SESSION['start']=time();    
     function check_abort(){
              if (connection_aborted()){
                $_SESSION['end']=time();
                }
              }

// 在脚本结束时调用 check_abort 函数
register_shutdown_function("check_abort");
?></code>

但是,$_SESSION['end']总是空的,这是怎么回事?

register_shutdown_function是脚本执行完就触发了 即页面渲染完成就会结束掉 服务端的工作就做完了 而不是用户真正停留的时间 用户停留页面的时间 还是要通过前端js去计时 最终传递给后端的

善用搜索引擎。
http://www.codefans.net/jscss/code/4188.shtml
http://cwfmaker.iteye.com/blog/801986

1.页面停留时间不好计算,比如电脑突然断电关闭,前端js也不会触发事件发送请求,后端是不可能知道的。
2.register_shutdown_function是脚本执行结束掉用,不是页面关闭执行。
3.最方便的,前端ajax一分钟发一次请求到后端,可以把时间更新放到redis中。这样时间误差最多一分钟。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn