2014-08-11 7 views
18

Mam stronę zawierającą wiele elementów <video> w niej ułożonych jeden po drugim.Chrome zawiesza się na stronie ładowania z wieloma znacznikami <video>

Na razie powiedzmy 100. Kiedy klikam na stronie internetowej, Chrome ładuje pierwsze 25 i widzę obrazy wideo wyświetlane Ok, ale potem zatrzymuje się, a reszta pozostaje czarna. Widzę też, że strona wciąż się ładuje i widzę komunikat "W toku ..." w lewym dolnym rogu strony.

Mathematica graphics

korzystania z przeglądarki Firefox, mogę załadować tę samą stronę bez problemu. Korzystając z IE 11, mogę załadować tę samą stronę bez problemu, a wszystkie filmy pokazują się dobrze.

W żadnym z tych przypadków nie odtwarzałem jeszcze wideo. To wszystko tylko czeka na pełne załadowanie strony.

Używam lokalnego serwera apache na moim komputerze. Konfiguracja to oprogramowanie XAMPP. Apache działa na moim komputerze i uzyskuję dostęp do mojej strony za pomocą localhost.

Oto interesująca rzecz, którą znalazłem. Kiedy ładuję stronę za pomocą file: /// C:/URI, i używam tej samej strony, to teraz Chrome pokazuje wszystkie elementy wideo w sam raz! Żadne z nich nie jest czarne. Wszystkie są dobrze widoczne i mogę je odtwarzać bez problemu.

Problem pojawia się tylko podczas korzystania z serwera apache. Jest to więc problem z buforowaniem między serwerem internetowym a przeglądarką Chrome.

Wiem, że jest to kwestia buforowania, ponieważ jeśli przeniesię jeden z filmów nadal wyświetlających czarny i umieściłem link na górze strony, a ponownie załaduję stronę, to nie jest już czarna i pojawia się. Nic się nie zmieniło poza pozycją znacznika <video>. Wygląda więc na to, że Chrome ma limit ilości tagów wideo, które można załadować na jednej stronie?

używam Chrome 36.0.1985.125 na windows 7.

Próbowałem zmienić rozmiar wideo jest wyświetlany przy użyciu:

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

ale bez względu na wielkość używam w powyższym, nadal wisi w tym samym miejscu.

Wszelkie sugestie co zrobić? Mógłbym podzielić stronę na wiele różnych stron w ostateczności.

To jest Windows 7, 64-bitowy. Używane przeze mnie elementy video są takie same. Oto jeden przykład:

<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> 

Tak jak powiedziałem, zmiana szerokości i wysokości nie ma znaczenia.

Spojrzałem na plik dziennika dla apache (plik logu dostępu) i widzę około 206 kodów tam, kiedy ładuję stronę z Chrome (206 jest częściową treścią). Oto przykład jednego wpisu:

[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" 

Kiedy załadować tę samą stronę z firefox i zajrzeć do pliku dziennika Apache, nie widzę żadnych 206 kody tam. Od http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html jest napisane:

Serwer spełnił częściowe żądanie GET dla zasobu.Żądanie MUSI zawierać pole nagłówka zakresu (sekcja 14.35) wskazujące żądany zakres i może zawierać pole nagłówka If-Range (sekcja 14.27), aby warunek był warunkowy.

Wygląda na to, że Chrome ma limit filmów, o które może poprosić? Czy jest to znany problem z Chrome?

Odpowiedz

20

Znalazłem rozwiązanie, które omija ten problem z Chrome. Opublikuj tutaj na wypadek, gdyby ktoś inny wpadł na ten sam problem.

wymianie wszystkich

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

z

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

Co powyższe robi to sugerować do przeglądarki, aby nie pobierać filmy, chyba że ktoś kliknie na przycisk odtwarzania, a jedynie, że specyficzny wideo załadowany. W międzyczasie umieszcza obraz z plakatu, aby przestrzeń była zajęta przez coś, a nie pusta.

Teraz strona ładuje się dobrze w Chrome.

Chrome ma znany błąd, który powoduje tworzenie wielu połączeń przez gniazda i ich nie zamyka. https://code.google.com/p/chromium/issues/detail?id=234779

0

sam problem tutaj, to jest najlepszy sposób, aby naprawić to

Wymień

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

Aby

<video controls preload="none" controls poster="screen_shot.png"> 
Powiązane problemy