Отдельные элементы DOM, прослушиватели событий и утечки памяти с videoJS - PullRequest
0 голосов
/ 08 января 2020

Я пытаюсь воспроизвести один за другим список воспроизведения с использованием видео JS. Я делаю что-то вроде этого:

setTimeout(function () {
    //...
    this.player.src(source);

    //...
    this.player.ready(function () {
        //...
        let promise = self.player.play();

        //...
        promise.then(res => {
            //...
            self.player.play();
        })
        //...
    })
}, 10000);

, то есть каждые 10se c воспроизводится новое видео. Это прекрасно работает. Проблема заключается в следующем: проверка инструмента памяти в Chrome показывает, что существует много отдельных элементов DOM: div, video, text и так далее. Кроме того, есть много отдельных слушателей и других материалов, которые добавляются самим видео JS.

Через некоторое время приложение вылетает. Например, в данный момент у него 75 отсоединенных div, а после 50 видео у него более 1754. То же самое для событий и прочего. Я прилагаю изображение, чтобы получить более подробную информацию

t1: после 29 видео enter image description here

t2: после 50 видео enter image description here

Чтобы возобновить проверку производительности монитора, приложение запускается, например, с 600 элементами DOM, а после 50 видео использует более 7000.

enter image description here

...