AngularJS 秒表在移动设备上速度慢得无法使用
AngularJS Stopwatch is unusably slow on mobile
所以我想制作一个秒表应用程序,内置一些额外的运动跟踪功能。我正在使用这个 angular 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)有效,但按下 start/stop 按钮和计时器之间大约有半秒的延迟反应 - 不是一个愉快的用户体验。
我还尝试了 jQuery implementation,它 运行 速度更快,但仍然不如桌面上的同一站点(或本机计时器,可以理解)那么活泼。
所以我的问题是:有什么 javascript 的配置可以让我快速完成 运行 吗?我没有做过任何移动应用程序开发,所以完成这个基于 Web 的项目是最理想的。
谢谢!
我认为您的问题不在于计时器,而是在您更改 $scope.timerRunning 值时未触发作用域的摘要循环。
更改值后尝试执行此操作:
$scope.$digest();
事实证明,按下按钮的延迟根本不是由 angular 引起的,而是由移动浏览器添加到点击中的固有 300 ms delay 引起的。
因此,通过使用 FastClick(并遵循随附的说明),在移动设备上的性能如预期的那样快。
所以我想制作一个秒表应用程序,内置一些额外的运动跟踪功能。我正在使用这个 angular 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)有效,但按下 start/stop 按钮和计时器之间大约有半秒的延迟反应 - 不是一个愉快的用户体验。
我还尝试了 jQuery implementation,它 运行 速度更快,但仍然不如桌面上的同一站点(或本机计时器,可以理解)那么活泼。
所以我的问题是:有什么 javascript 的配置可以让我快速完成 运行 吗?我没有做过任何移动应用程序开发,所以完成这个基于 Web 的项目是最理想的。
谢谢!
我认为您的问题不在于计时器,而是在您更改 $scope.timerRunning 值时未触发作用域的摘要循环。 更改值后尝试执行此操作: $scope.$digest();
事实证明,按下按钮的延迟根本不是由 angular 引起的,而是由移动浏览器添加到点击中的固有 300 ms delay 引起的。
因此,通过使用 FastClick(并遵循随附的说明),在移动设备上的性能如预期的那样快。