Обновление
Похоже на ошибку. Отключил расширение. При переходе по сайту происходит увеличение памяти, но не намного. Если просто открыть консоль разработчика и щелкнуть еще раз - резкий скачок.
Старый пост
У нас есть расширение chrome со следующей функцией. Его задача - дождаться отображения ключевого элемента и запустить обратный вызов.
function waitPageToComplete(key, callback) {
let timerId = setInterval(function () {
if (document.querySelector(key)) {
clearInterval(timerId);
callback(key);
}
}, 500);
}
Функция вызывается при возникновении события complete
.
// backgroud.js
function onTabsUpdated(tabId, changeInfo, tab) {
if (changeInfo.status == 'complete') {
chrome.tabs.sendMessage(tabId, { message: 'complete' });
}
}
// content-script.js
function onBackgroundMessage(request, sender, sendResponse) {
if (request.message == 'complete') {
waitPageToComplete(someKey, someCallback);
}
}
Браузер Opera
Поставьте точку останова в любой строке функции waitPageToComplete
:
Refre sh page. Поймайте точку останова и нажмите продолжить. Потребление памяти составляет ~100mb
(диспетчер задач Opera)
Go на другую страницу того же сайта.
Поймать точку останова. Память до 1,5gb
.
Что случилось? Если точки останова нет, то это тоже происходит. Но не каждый раз. С точкой останова постоянно.
Chrome браузер
Нет такой проблемы. Не случайно, не с точкой останова. Тот же код, то же расширение.