У нас есть страница, которая содержит около 77 видео миниатюр. Когда миниатюра видео наведена, видео начинает воспроизводиться в пределах области миниатюр.
Проблема возникает после того, как многие (от 8 до 60 в зависимости от системы / браузера) из них зависли. Видео начинает воспроизводиться неправильно или не воспроизводится. В основном плоские / избыточные области становятся все темными. В Edge это исправляется через секунду или две, но для нашего клиента это очень нежелательное поведение.
Мы сделали улучшение, приостановив каждое видео при помощи мыши, вызвав pause()
, удалив атрибут src
, а затем вызвав load()
для элемента с пустым атрибутом src
, например:
function pauseVideo(e) {
$('video', this).get(0).pause();
$('video', this).get(0).removeAttribute('src');
$('video', this).get(0).load();
}
Это очищает некоторую память, но проблема все еще возникает, хотя большее количество видео может воспроизводиться до того, как проблема станет очевидной.
Похоже, я как-то связан с памятью и обнаруживает то, что нам кажется утечкой памяти в браузерах Microsoft. Каждое видео увеличивает использование памяти, и память никогда не очищается, как это кажется в Chrome и Firefox. Проблема обычно возникает, когда использование памяти в диспетчере задач достигает от 600 МБ до 1 ГБ (в зависимости от системы). (Chrome всегда занимает около 500-550 мегабайт.
Firefox занимает около 700-800 мегабайт.)
Мы заметили некоторую разницу в том, когда поведение начинает происходить, что зависит от видеокарт, но в какой-то момент проблема всегда возникает.
Все эти видео показаны в нескольких местах на странице. Поэтому мне было интересно узнать, можно ли разделить видеопамять между элементами.
Есть еще пара вопросов, которые могут быть связаны. В IE видео становятся полностью черными, а их размеры изменяются на экране, что может изменить макет страницы.
Вот связанная проблема, но она не является дубликатом , так как она не дает вопроса или решения о необходимости облегчить 80 или около того видео на одной странице : Как правильно выгрузить / уничтожить элемент ВИДЕО
Мы проводим тестирование на IE версии 11.228.17134.0 и Edge версии 42.17134.1.0, обе на данный момент самые последние.
Изначально требуемая функциональность заключалась в том, что видео останавливалось на кадре, когда пользователь отключил видео, но сейчас кажется, что мы не сможем этого сделать, если нам придется выгрузить видео.
Я буду добавлять дополнительную информацию об этой проблеме в течение дня, когда она станет доступной.