На данный вопрос уже ответили:
Установил почтовый клиент rainlooop
js раз в определенное количество времени шлет запрос на php скрипт, который уже связывается c моим аккаунтом и получается список писем. Хочу изменить интервал проверки писем. если увидеть отправляемые запросы из консоли я могу то вот как увидеть какие таймеры стоят и в каких функциях, не понимаю
Как вариант переопределить стандартный setInterval в самом начале загрузки страницы и собрать все таймеры, соответствующие функции и интервалы в массив объектов.
После полной загрузки страницы у вас будет массив объектов с полной информацией от таймерах. Затем у вас появится отличная возможность управлять таймерами так как вам необходимо "динамически"
!
window.originalSetInterval = window.setInterval;
let activeTimers = [];
//Переопределение стандартного setInterval
window.setInterval = function(callback, interval) {
const handler = window.originalSetInterval(callback, interval);
activeTimers.push({
handler: handler,
callback: callback,
interval: interval
});
return handler;
};
window.getActiveTimers = () => {
return activeTimers.slice();
};
setInterval(() => {
console.log('#1')
}, 5000);
console.log(getActiveTimers());
setInterval(() => {
console.log('#2')
}, 5000);
console.log(getActiveTimers());
//Ждем полной загрузки всех ресурсов
window.addEventListener('load', () => {
//Сбрасываем переоределение стандартного setInterval
window.setInterval = window.originalSetInterval;
console.log('Все ресурсы загружены!');
//Удалить все таймеры (setInterval) по "ID"
activeTimers.map(elem => clearInterval(elem.handler));
console.log('Все таймеры удалены!');
//Но массив объектов у нас все еще есть
console.log(getActiveTimers());
//Инициализируем таймеры снова но уже из массив объектов
activeTimers.map(elem => setInterval(elem.callback, elem.interval));
//То есть вы можете управлять таймерами динамически
//Допустим я знаю что 2 таймер обновляется слишком быстро 5000мс
//А мне надо больше 10000мс (или меньше)
activeTimers.map(elem => {
if (elem.handler == 2) {
console.log('Второй таймер обновлен:');
clearInterval(elem.handler);
elem.interval = 10000;
setInterval(elem.callback, elem.interval);
}
});
console.log(getActiveTimers());
}, false);
Если есть вопросы могу дополнить ответ.
var oldSetInterval = window.setInterval;
window.setInterval = function(){
var f = arguments[0];
arguments[0] = function() {
console.log("my interval wrapper:", f.toString(), JSON.stringify(arguments));
f.apply(this, arguments);
};
oldSetInterval.apply(this, arguments);
};
setInterval(function(a, b){
console.log("real interval", a + b)
}, 1000, 23, 100);
Отследить уже запущенные интервалы - нельзя. Но если вставить/выполнить этот код до всех других скриптов на странице, все интервалы будут вызываться через эту обертку. Думаю, это можно сделать через js расширение для браузера.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Вот есть текст
Друзья, добрый день
Помогите правильно организовать программу, нужно написать todo консольную желательноУ нее должны быть поля