Javascript 需要在AngularJS中查找页面加载和单击下一页之间的持续时间

Javascript 需要在AngularJS中查找页面加载和单击下一页之间的持续时间,javascript,angularjs,Javascript,Angularjs,我是AngularJS的新手,我想编写一个简单的函数,计算用户从页面加载到点击“下一步”按钮在页面上花费的秒数。所以,基本上我需要知道用户在每个页面上花费了多少时间。有人能帮我用AngularJS编写这个函数吗?从添加事件监听器开始: document.addEventListener("blur", onBlur, false); document.addEventListener("focus", onFocus, false); 然后创建onBlur和onFocus函数: functio

我是AngularJS的新手,我想编写一个简单的函数,计算用户从页面加载到点击“下一步”按钮在页面上花费的秒数。所以,基本上我需要知道用户在每个页面上花费了多少时间。有人能帮我用AngularJS编写这个函数吗?

从添加事件监听器开始:

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();
    });
});