Oceniam istniejące zasoby do optymalizacji ładowania skryptów, ale przeczytałem w niektórych artykułach, takich jak this, odnoszą się do starszych przeglądarek zablokować inne pliki do pobrania, aż do zakończenia fazy ładowania skryptów sekwencyjnych. Sprawdzam Modernizr (yepnope.js), headjs i ControlJs jako kandydaci. Ale czy konieczne jest użycie tych narzędzi do ładowania skryptów równoległych w nowoczesnych przeglądarkach?Czy współczesne przeglądarki ładują skrypty równolegle lub sekwencyjnie?
Odpowiedz
wierzę domyślnie większości przeglądarek dzisiaj rzeczywiście załadować skrypty równolegle; ale przeglądarka domyślnie nie wykonuje skryptów równolegle. Na przykład w poniższym kodzie skrypty będą ładowane równolegle. Na obrazku widać, że Fast1.js i Fast2.js ładują się bardzo szybko, ale na podstawie czasu w konsoli przeglądarki Fast2.js wykonuje się 3 sekundy po uruchomieniu Fast1.js.
Należy pamiętać, że kolejność plików może mieć znaczenie. Plik Backbone.js zależy od pliku underscore.js. Jeśli zmieniliśmy kolejność tych plików, gdzie bacbone.js znajduje się przed plikiem underscore.js, zostanie zgłoszony błąd.
<html >
<head>
<title></title>
<script src="scripts/fast1.js" type="text/javascript"></script>
<script src="scripts/libs/jquery-1.8.3.js" type="text/javascript"></script>
<script src="scripts/libs/underscore.js" type="text/javascript"></script>
<script src="scripts/libs/backbone.js" type="text/javascript"></script>
<script src="scripts/fast2.js" type="text/javascript"></script>
</head>
<body>
Hello
<script type="text/javascript">
console.log("html: " + Date());
</script>
<img src="imgs/bImg.png" />
</body>
</html>
Oto kod dla pliku JavaScript Fast1.js i Fast2.js
console.log("Fast 1: " + Date())
dla skryptu załadunku używam Require.js. Zapewnia to także korzyść z organizowania kodu w moduły znajdujące się w poszczególnych plikach.
Oto postu blog tworzę na Browser Script ładowania: Browser Script Loading
Oto kilka artykułów na Script ładowania:
Czy istnieje standard HTML, który zabrania przeglądarce równoczesnego wykonywania pobranego kodu? – Pacerier
Większość przeglądarek ładuje je sekwencyjnie. Jednak istnieje atrybut async
, który można umieścić na znaczniku script
, aby spowodować, że będzie on ładowany inaczej.
MDN wyjaśnia, co znacznik script
robi bardzo dobrze.
https://developer.mozilla.org/en-US/docs/HTML/Element/Script
- 1. są zewnętrznymi plikami javascript ładowanymi sekwencyjnie lub równolegle?
- 2. Czy istnieje typowy typ MIME, rozpoznawany przez współczesne przeglądarki?
- 3. Czy przeglądarki wykonują załadowane skrypty w jednym wątku?
- 4. Dlaczego przeglądarki mobilne ładują całkowicie powiększoną stronę?
- 5. wiele żądań HTTP GET w jednym połączeniu TCP/IP - przetwarzane równolegle lub sekwencyjnie
- 6. Czy skrypty rozszerzeń przeglądarki Chrome mogą otwierać okno.opener?
- 7. Czy współczesne dialekty regularne nie są regularne?
- 8. Czy współczesne cpus pomija multiplikacje przez zero?
- 9. Czy prawidłowe strony internetowe ładują się szybciej?
- 10. Jak uruchomić wiele żądań curl, przetwarzane sekwencyjnie?
- 11. Kolejność zadań selekcji sekwencyjnie
- 12. Czy Tries jest nadal dobrym pomysłem na współczesne architektury?
- 13. Czy istnieją skompilowane skrypty PHP?
- 14. Czy istnieje sposób na uruchomienie instalacji RPM równolegle?
- 15. Czy bardziej szczegółowe reguły CSS ładują się lepiej?
- 16. Czy można wywołać skrypty bash lub powłoki z programu haskell?
- 17. Dlaczego te zadania są uruchamiane sekwencyjnie?
- 18. Narzędzia dla programistów przeglądarki Chrome: skrypty pojawiają się wiele razy
- 19. Biblioteka JavaScript (Rhino) lub inne skrypty
- 20. Czy skrypty oczekują na naukę?
- 21. Skrypty OpenOffice Forms z VB lub pytonem
- 22. Dlaczego wieloprocesorowość Pythona działa sekwencyjnie?
- 23. Postgresql. Czy można uruchomić kwerendę aktualizacji równolegle?
- 24. Wiele procesów uruchamiających jądra CUDA równolegle
- 25. Jak uruchomić testy sekwencyjnie w Xcode 6 beta3
- 26. Równolegle do pętli. Czy czekają na zakończenie?
- 27. Konwersja rozszerzenia przeglądarki Google Chrome do przeglądarki Firefox lub Safari
- 28. Jak sprawdzić, czy aplikacja YII działa z konsoli lub przeglądarki?
- 29. Szyny nie ładują strumienia aktywów
- 30. Czy wtyczki Vima ładują się po załadowaniu vimrc?
kolejno, jeśli nie robi cokolwiek ekstra do ładowania plików JavaScript ... –
Hooking https://stackoverflow.com/q/1795438/6 32951 – Pacerier