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

WBOY
풀어 주다: 2016-06-06 20:18:50
원래의
1428명이 탐색했습니다.

代码如下 :

<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中。这样时间误差最多一分钟。

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿