Javascript 需要在AngularJS中查找页面加载和单击下一页之间的持续时间
我是AngularJS的新手,我想编写一个简单的函数,计算用户从页面加载到点击“下一步”按钮在页面上花费的秒数。所以,基本上我需要知道用户在每个页面上花费了多少时间。有人能帮我用AngularJS编写这个函数吗?从添加事件监听器开始:Javascript 需要在AngularJS中查找页面加载和单击下一页之间的持续时间,javascript,angularjs,Javascript,Angularjs,我是AngularJS的新手,我想编写一个简单的函数,计算用户从页面加载到点击“下一步”按钮在页面上花费的秒数。所以,基本上我需要知道用户在每个页面上花费了多少时间。有人能帮我用AngularJS编写这个函数吗?从添加事件监听器开始: document.addEventListener("blur", onBlur, false); document.addEventListener("focus", onFocus, false); 然后创建onBlur和onFocus函数: functio
document.addEventListener("blur", onBlur, false);
document.addEventListener("focus", onFocus, false);
然后创建onBlur和onFocus函数:
function onFocus() {
$scope.blurTime= Date.now();
log.debug('User time caught at ' + $scope.blurTime);
}
function onBlur() {
var pageTime = Date.now() - $scope.pauseTime,
log.debug('User continue - time is ' + pageTime + 'ms');
}
在这些功能中执行您需要执行的操作。警告:我没有对此进行测试,因此您需要进行一些tweeking(检查事件)。将此内容放在定义应用程序的app.js文件中。为此,您需要注入$location并将侦听器添加到“$locationChangeStart”。剩下的只是做一些数学和记录。我只在页面打开时间超过.02时才在日志中添加了额外的代码。Angular在做一些路由,我相信这是在记录日志。所以,尝试和错误的日志记录。 使用这种方法更干净,因为您不需要将它放在所有控制器中
var mainApp = angular.module('mainApp', [.....]);
mainApp.run(function ($rootScope, $location) {
$rootScope.currentPage = "";
$rootScope.pageLoadedTime = "";
$rootScope.$on('$locationChangeStart', function (event) {
if ($rootScope.currentPage != "") {
var seconds = (new Date().getTime() - $rootScope.pageLoadedTime.getTime()) / 1000;
if (seconds > .02)
console.log("Page: ", $rootScope.currentPage, " Seconds spent on page : ", seconds);
}
$rootScope.pageLoadedTime = new Date();
$rootScope.currentPage = $location.url();
});
});