Skrypt nie ma rzeczywistego zastosowania, dopóki HTML się nie załaduje - skrypt nie może zmienić DOM, dopóki HTML się nie załaduje. document.ready
czeka na załadowanie DOM. Nie ma więc sensu, aby zawierał ważne rzeczy, takie jak arkusze stylów.
Umieść skrypty na dole strony (przed </body>
tagiem), aby jak najszybciej dostarczyć użytkownikowi HTML i CSS. Przeglądarka będzie w stanie renderować stronę znacznie szybciej, a następnie można załadować skrypty, zamiast pozostawiać pustą stronę, na którą użytkownik będzie mógł patrzeć, czekając na pobranie skryptów.
Podczas gdy przeglądarka stopniowo renderuje stronę, jeśli trafi ona na znacznik skryptu (tj. Zewnętrzny plik Javascript) wszystko się zatrzymuje . Skrypty mają pierwszeństwo - podczas pobierania skryptu przeglądarka nie rozpocznie żadnego innego pobierania. tzn. obrazy i arkusze stylów oraz wszelkie inne równoległe pobieranie będą blokowane, nawet na różnych nazwach hostów.
Wadą umieszczania skryptów na dole strony jest to, że ponieważ strona będzie renderowana przed zainicjowaniem skryptów, szczególnie szybkie kliknięcia będą mogły wchodzić w interakcje z witryną, zanim JavaScript będzie gotowy.
Uwaga: Odwrotna sytuacja dotyczy arkuszy stylów - arkusze stylów w dolnej części strony blokują renderowanie progresywne, dopóki wszystkie arkusze stylów nie zostaną pobrane i przeniesienie ich do dokumentu HEAD
wyeliminuje problem.
Jest ładna sztuczka w celu załadowania javascript bez zmuszania użytkownika do oczekiwania, możesz utworzyć <script/>
element za pomocą createElement()
metody DOM i dodać go do strony tuż przed </body>
tagiem zamykającym :
var oScript = document.createElement("script");
oScript.src = "/path/to/my.js";
document.body.appendChild(oScript);
Przeglądarka nie rozpoczyna pobierania skryptu js, dopóki nowy <script/>
element nie zostanie faktycznie dodany do strony. Po zakończeniu pobierania przeglądarka interpretuje zawarty w nim kod JavaScript.