Задачи таймера отложенного таймера отложенных операций Angularjs
Построение приложения Ionic и внезапно сталкивается с проблемой, которую мне сложно отлаживать, когда браузер "откладывает" длительные задачи таймера, заставляя мои представления выполнять код в своих контроллерах только один раз (даже если контроллер явно перезагружается).
Предупреждение:
Отложенная задача с большим сроком действия, чтобы улучшить гладкость прокрутки. См. Crbug.com/574343.
Что мне нужно:
- Понимание предупреждения и почему это происходит.
- Любые указания относительно того, как отлаживать такое предупреждение.
Спасибо заранее.
Обновление
Я чувствовал, что важно отметить, что, хотя я никогда не получаю ошибок и только предупреждения в качестве причины для своих проблем, я с тех пор откатился к рабочей версии.
В этой рабочей версии по-прежнему появляются предупреждения, но не влияет на работу моего приложения.
Ответы
Ответ 1
Хорошо, если вы выполняете задания с использованием $timeout, вам нужно остановить и уничтожить их, иначе они создадут указанную вами ошибку.
например:
var timer = $timeout(
function() {
console.log( "Timeout executed", Date.now() );
},
2000
);
если вы запустили таймаут, как указано выше, вы должны уничтожить таймер следующим образом:
// When the DOM element is removed from the page,
// AngularJS will trigger the $destroy event on
// the scope. This gives us a chance to cancel any
// pending timer that we may have.
$scope.$on(
"$destroy",
function( event ) {
$timeout.cancel( timer );
}
);
Ответ 2
Я столкнулся с этой проблемой, когда функция вызывалась только при первом загрузке представления. Отметили это предупреждение в консоли, но не уверены, связано ли это с вызовом функции только один раз.
В контроллере я переместил вызов своей функции внутри "$ ionicView.enter", и он получает вызов при каждом просмотре представления.
$scope.$on('$ionicView.enter', function () {
callMyFunction();
});
Надеюсь, что это поможет.
Ответ 3
Похоже, что у вас может быть максимальное количество подключений в вашем браузере. Возможно, вы захотите уменьшить ваши HTTP-запросы до одного запроса, который содержит что-то, что будет 10 запросов против 10 отдельных HTTP-запросов.
Ответ на ваш вопрос - это что-то вроде максимального HTTP-запроса на браузер.
"Максимальное количество одновременных постоянных подключений по умолчанию для каждого сервер/прокси:"
Также ответил здесь, если я правильно предполагаю - Максимальное количество параллельных HTTP-соединений в браузере?