Вот следующий код:
let g = {
characterImg: document.createElement('img'),
num: 0
}
function test() {
let myDiv = document.getElementById('my-div')
const param = '#date=' + new Date().getTime()
const imagePath = (g.num + 1).toString() + '.png' + param
let removeListener = false
const myFunction = function() {
myDiv.style.backgroundImage = "url('" + imagePath + "')"
if (removeListener)
g.characterImg.removeEventListener('load', myFunction)
}
g.characterImg.src = imagePath
if (g.characterImg.complete)
myFunction()
else {
removeListener = true
g.characterImg.addEventListener('load', myFunction)
}
// 15 pictures
g.num = (g.num + 1) % 15
}
Зная, что мое приложение постоянно использует много анимированных файлов PNG, у меня есть два вопроса:
Многократное выполнение тестовой функции увеличьте объем памяти, не освобождая ее в любое время. Даже если это всего лишь несколько месяцев после нескольких минут использования, я хочу иметь возможность загружать изображение без небольшой утечки для каждой загрузки. Из того, что я знаю, изменение sr c является причиной, но я не знаю, как решить эту проблему.
Изменение backgroundImage не является утечкой памяти, но постоянно увеличивает памяти без вызова сборщика мусора до тех пор, пока я не сверну активное окно на несколько секунд или , когда приложение достигнет 500 млн. использования в моем случае. Разве нет способа заставить приложение вызывать сборщик мусора более эффективно или хотя бы установить ограничение памяти для приложения Electron?
Любая помощь приветствуется:)