Я делаю контроллер, который обрабатывает обратный отсчет, например:
var addzero;
addzero = function(number) {
if (number < 10) {
return '0' + number;
}
return number;
};
angular.module('theapp').controller('TematicCountdownController', [
'$scope', '$timeout', function($scope, $timeout) {
var intervalPromise;
return intervalPromise = $timeout((function() {
var days, daysRound, deadline, hours, hoursRound, minutes, minutesRound, now, seconds, secondsRound;
now = new Date;
deadline = new Date('oct 5 2015 00:00:00');
days = (deadline - now) / 1000 / 60 / 60 / 24;
daysRound = Math.floor(days);
$scope.dd = daysRound;
hours = (deadline - now) / 1000 / 60 / 60 - (24 * daysRound);
hoursRound = Math.floor(hours);
$scope.hh = addzero(hoursRound);
minutes = (deadline - now) / 1000 / 60 - (24 * 60 * daysRound) - (60 * hoursRound);
minutesRound = Math.floor(minutes);
$scope.mm = addzero(minutesRound);
seconds = (deadline - now) / 1000 - (24 * 60 * 60 * daysRound) - (60 * 60 * hoursRound) - (60 * minutesRound);
secondsRound = Math.round(seconds);
$scope.ss = addzero(secondsRound);
}), 1000);
}
]);
Менеджер задач говорит мне, что процесс моего углового приложения все больше потребляет больше памяти, и процессор постоянно используется.
Перед реализацией этого обратного отсчета использование памяти и процессор были нормальными.
Надеюсь, вы можете помочь мне предотвратить это поведение.
благодаря
Как насчет cancel
этого $interval
всякий раз, когда происходит $destroy
?
$scope.$on('$destroy', function() {
$interval.cancel(intervalPromise);
});