计算用户在页面上完成活动的总时间,例如jquery中的mousemove

时间:2016-09-22 12:55:36

标签: javascript jquery html angularjs

请帮帮我。我必须找到用户在页面上完成活动的总时间,如mousemove,keypress等。我想获得该页面已被使用的有用时间。 我已经制作了一些代码,用于计算已打开的总时间页面以及用户在该页面中关注的时间。

计算此有用时间的另一种方法可以是计算页面上的总空闲时间,对此没有任何操作(我的意思是mousemove,keypress)。 有用时间=总页面开放时间 - 总空闲时间

请帮忙 这是代码。



var start, end, openingtime, pagefocustime = 0;
    $(document).ready(function(){       
      start = performance.now();

      $(window).on('blur', function() {
        end = performance.now();
        pagefocustime += end - start
      })

      $(window).on('focus', function() {
        start = performance.now();
      })
       
        $(window).on('beforeunload',function(){           
                end = performance.now();
                pagefocustime += end - start
                console.log("Exact Page Focused Time : ");
                console.log(pagefocustime);                       
                openingtime = end-start;
                console.log("Total Page Read Time : "+ openingtime);
        });           
});




请帮忙。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

这是答案。将此代码与上述代码一起使用。

function setup() {
		this.addEventListener("mousemove", resetTimer, false);
		this.addEventListener("mousedown", resetTimer, false);
		this.addEventListener("keypress", resetTimer, false);
		this.addEventListener("DOMMouseScroll", resetTimer, false);
		this.addEventListener("mousewheel", resetTimer, false);
		this.addEventListener("touchmove", resetTimer, false);
		this.addEventListener("MSPointerMove", resetTimer, false); 
		startTimer();
	}
	
	setup(); 
	 
	function startTimer() {
		timeoutID = window.setTimeout(goInactive, 10000);
	}
	 
	function resetTimer(e) {
		window.clearTimeout(timeoutID);
	 
		goActive();
	}
	 
	function goInactive() {
		idletime = idletime + inactivetime;
	}
	 
	function goActive() {      
		startTimer();
	}