AngularJS秒表在移动设备上速度非常慢

时间:2015-02-14 02:45:40

标签: javascript jquery angularjs jquery-mobile

所以我想制作一款内置了一些额外运动追踪功能的秒表应用。我使用这个有角度的timer库作为秒表(从文档复制开始和停止)按钮),然后使用按钮将文本添加到列表 - 非常简单。

var app = angular.module('myTimer', ['timer'])

.controller('MainCtrl', ['$scope', function($scope){
  $scope.init = true;
  $scope.timerRunning = false;

  $scope.startTimer = function() {
    // calling init on a running timer borks it
    if ($scope.init) {
      $scope.$broadcast('timer-start');
      $scope.init = false;
    }
    else {
      $scope.$broadcast('timer-resume');
    }
    $scope.timerRunning = true;  
  };

  $scope.stopTimer = function() {
    $scope.$broadcast('timer-stop');
    $scope.timerRunning = false;
  };
}]);

不幸的是,在移动设备(iPhone 5S,iOS 8.1)上通过localhost加载页面可以正常工作,但是按下开始/停止按钮和计时器反应之间有大约半秒的延迟 - 这并不是一个愉快的用户体验

我还尝试了一个运行速度更快的jQuery implementation,但仍然不如桌面上的同一个站点(或原生计时器,可以理解)。

所以我的问题是:我有什么配置的javascript可以让它快速运行吗?我还没有完成任何移动应用程序开发,所以完成这个基于Web的项目将是理想的。

谢谢!

2 个答案:

答案 0 :(得分:0)

我认为您的问题不是计时器,但是当您更改$ scope.timerRunning值时,不会触发范围的摘要周期。 更改值后尝试执行此操作: $ $范围摘要();

答案 1 :(得分:0)

事实证明,按下按钮的延迟根本不是由角度引起的,而是由移动浏览器点击增加的固有300 ms delay引起的。

因此,通过使用FastClick(并遵循附带的说明),移动设备上的性能与预期一样快。