所以我想制作一款内置了一些额外运动追踪功能的秒表应用。我使用这个有角度的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的项目将是理想的。
谢谢!
答案 0 :(得分:0)
我认为您的问题不是计时器,但是当您更改$ scope.timerRunning值时,不会触发范围的摘要周期。 更改值后尝试执行此操作: $ $范围摘要();
答案 1 :(得分:0)
事实证明,按下按钮的延迟根本不是由角度引起的,而是由移动浏览器点击增加的固有300 ms delay引起的。
因此,通过使用FastClick(并遵循附带的说明),移动设备上的性能与预期一样快。