Подтвердить что ты не робот

Chrome зависает на странице загрузки со многими тегами <video>

У меня есть страница со многими элементами <video>, которые расположены друг за другом.

Сейчас говорит 100. Когда я нажимаю на веб-страницу, Chrome загружает первые 25, и я вижу, что видеоизображения отображаются Ok, но затем он останавливается, а остальные остаются черными. Я также вижу, что страница по-прежнему загружается, и я вижу хром, говорящий "In progress..." в нижней левой части страницы.

Mathematica graphics

Используя firefox, я могу загрузить одну и ту же страницу без проблем. Кроме того, используя IE 11, я могу загрузить одну и ту же страницу без проблем, и все видео выглядят нормально.

Ни в одном из этих случаев я еще не сыграл видео. Это всего лишь ожидание загрузки страницы.

Я использую локальный сервер apache на своем ПК. Настройка - это программное обеспечение XAMPP. Итак, Apache работает на моем ПК, и я обращаюсь к своей странице с помощью localhost.

Теперь вот интересная вещь, которую я нашел. Когда я загружаю страницу с помощью файла:///C:/URI и использую ту же самую точную страницу, теперь Chrome показывает все видеоэлементы просто отлично! Ни один из них не черный. Все они отлично выглядят, и я могу играть без проблем.

Проблема возникает только при использовании сервера apache. Таким образом, это проблема буферизации между веб-сервером и браузером Chrome.

Я знаю, что это проблема с буферизацией, поскольку, если я перемещаю одно из видео, все еще показывающее черное, и помещаю ссылку вверху страницы, и перезагружаю страницу, то она больше не черная и она появляется. Ничего не изменилось, кроме позиции тега <video>. Итак, похоже, у Chrome есть предел количества видеотегов, которые он может загрузить на одной странице?

Я использую Chrome 36.0.1985.125 для Windows 7.

Я попытался изменить размер отображаемого видео, используя:

video {
  width: 200px    !important;
  height: auto   !important;
}

Но независимо от того, какой размер я использую в приведенном выше, он все еще висит в одном месте.

Любые предложения, что делать? Я мог бы разбить веб-страницу на многие разные страницы в качестве последнего средства.

Это окна 7, 64 бит. Элементы video, которые я использую, одинаковы. Вот один пример

  <P>
  <video width="480" height="385" controls>
      <source src="movie.webm" type="video/webm"> 
      <source src="movie.ogg" type="video/ogg">
      <source src="movie.mp4" type="video/mp4"> 
       Your browser does not support the video tag.
  </video>
 </P>

Как я уже сказал, изменение ширины и высоты не имеет значения.

Я просмотрел файл журнала для apache (файл журнала доступа), и там я вижу около 206 кодов, когда загружаю страницу из Chrome (206 - это частичное содержимое). Вот пример одной записи:

[11/Aug/2014:13:17:25 -0500] "GET /my_notes/movie.webm HTTP/1.1" 206 1768659 
 "http://localhost/my_notes/index.htm" "Mozilla/5.0 (Windows NT 6.1; WOW64) 
  AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36"

Когда я загружаю одну и ту же страницу из firefox и смотрю файл журнала apache, я не вижу никаких 206 кодов. Из http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html говорится:

Сервер выполнил частичный запрос GET для ресурса. запрос ДОЛЖЕН включить поле заголовка диапазона (раздел 14.35) указывая желаемый диапазон, и МОЖЕТ включить заголовок If-Range (раздел 14.27), чтобы сделать запрос условным.

Итак, похоже, что у Chrome есть предел видео, которое он может запросить? Это известная проблема с Chrome?

4b9b3361

Ответ 1

Я нашел решение, которое обошло эту проблему Chrome. Проводка здесь, если кто-то другой сталкивается с той же проблемой.

Заменено все

  <video  controls>....</video>

с

  <video preload = "none" controls poster="screen_shot.png">

В приведенном выше примере браузер советует не загружать видео, если не нажимать кнопку воспроизведения, а затем загружается только это конкретное видео. Он помещает изображение плаката тем временем, так что пространство занято чем-то, а не пустым.

Теперь веб-страница загружается в Chrome.

У Chrome есть известная ошибка, создающая несколько соединений сокетов, а не закрытие их. https://code.google.com/p/chromium/issues/detail?id=234779

Ответ 2

Такая же проблема здесь, это лучший способ ее исправить.

Заменить

<video  controls>....</video>

Для

<video controls preload="none" controls poster="screen_shot.png">