2015-06-15 11 views
8

Czasami (nie za każdym razem, ale zazwyczaj), gdy rozwijam się lokalnie, po pomyślnym pobraniu setek plików JS (wygląda na to, że obecnie pobieramy 1393 skrypty), Chrome zmieni się z pobierania pliki równolegle do pobierania ich serialnie.Chrome przełącza się na seryjne pobieranie skryptów

Serwer jest węzłem, używając wyrażenia i modułu "serve-static". Używam Chrome 43.0. Używam węzła 0.12.2. Używam serve-static 1.9.3. Wszystkie pliki są żądane za pomocą zwykłego znacznika skryptu, takiego jak <script src="foobar.js"></script>. Podejrzewam, że jest to problem z Chrome, ponieważ odpowiedzi na serwerze się nie zmieniają. Ale żądania przeglądarki również się nie zmieniają, tylko ich czas/kolejność.

Wszelkie pomysły?

enter image description here enter image description here

Edit: Biorąc pod uwagę, że wygląda to być kwestią Chrome, I złożyli bug-raport na chrom tutaj: https://code.google.com/p/chromium/issues/detail?can=2&q=serial%20script%20downloading&colspec=ID%20Pri%20M%20Week%20ReleaseBlock%20Cr%20Status%20Owner%20Summary%20OS%20Modified&id=500948&thanks=500948&ts=1434467876

+0

Czego można się spodziewać? Biorąc pod uwagę, że specyfikacja HTTP ogranicza liczbę równoczesnych połączeń klient/serwer ... –

+0

A jednak, jak dokładnie uwzględnić te skrypty? –

+0

@ c-smile Specyfikacja HTTP ogranicza liczbę jednoczesnych połączeń, ale ** powinna ** następnie pobierać w grupach, czyli 6 zamkniętych połączeniach 6 nowych, bardziej otwartych (lub ponownie użytych), na przykład. Jeden po drugim to dziwny problem. – devconcept

Odpowiedz

1

Każda przeglądarka ma maksymalną liczbę równoczesnych żądań, które wykona jednorazowo z dowolnego hosta i będzie umieszczać w kolejce wszystkie pozostałe żądania. Większość przeglądarek obsługuje 6 na nazwę hosta. Zobacz tutaj, aby uzyskać więcej szczegółów na temat każdej przeglądarki: http://www.browserscope.org/?category=network&v=top

1393 to wiele skryptów do pobrania na jednej stronie. Może zajść potrzeba przejrzenia ogólnej struktury architektury projektu &, aby zminimalizować pliki adresowane do katalogu głównego.

Możesz przejrzeć minimalizowanie/kompresowanie plików javascript w jednym pliku lub zestawie plików, co powinno zostać wykonane, nawet jeśli masz tylko kilka plików javascript, aby zoptymalizować wydajność.

Możesz również użyć CDN (Content Delivery Network) do przechowywania niektórych lub wszystkich plików. Poprzez dystrybucję plików pomiędzy różnymi nazwami hostów (np. http://host1.com/file1.js i http://host2.com/file2.js) przeglądarka może pobrać maksymalne równoczesne pliki z każdego hosta w tym samym czasie.

+0

Ze względu na liczbę skryptów efekt klatki schodowej jest oczekiwany, ale na zrzucie ekranu, po pierwszych 6 nie jest z pewnością ładowanie skryptów równolegle; wszystkie pozostałe są w pełni przetwarzane pojedynczo. – Katana314

+0

W produkcji łączymy się i pomniejszamy, to jest problem, którego doświadczam w rozwoju na poziomie lokalnym – hrdwdmrbl

Powiązane problemy