Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Umieszczanie kodu
Forum PHP.pl > Forum > Przedszkole
djtomaszq
Zaczołem naukę jquery i mam takie proste pytanie. Wiem, że kod umieszcza się w sekcji <head> </head> jeśli zacznę pisać wiele funkcji jquery to czy jest jakieś znaczenie czy będę pisał poprostu jeden kod pod drugim czy też można w head includować jakis plik w którym będą tylko kody funkcji jquery ?

np. mam w index.php
  1. <head>
  2.  
  3. <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
  4.  
  5. <script type="text/javascript">
  6. $(document).ready(function()
  7. {
  8. $("#tom").click(function()
  9. {
  10. $("h1").css("color","#12FA56").hide(2000);
  11. });
  12.  
  13. });
  14.  
  15. $(document).ready(function()
  16. {
  17. $("h2").click(function()
  18. {
  19. $("h2").css("color","red");
  20. });
  21.  
  22. });
  23. </script>
  24.  
  25. $(document).ready(function()
  26. {
  27. $("#przycisk").click(function()
  28. {
  29. $("#logo").css("color","gold");
  30. });
  31.  
  32. });
  33.  
  34. </head>


i jeszcze z 10 takich i innych kodów i czy nie lepiej / (czy tak jest dobrze) zrobić tak:

  1. <head>
  2. <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
  3.  
  4. include 'jquery.php';
  5. </head>
goartur
Chyba najlepiej jest poprostu dodac skrypt do pliku jquery.js
i nastepnie w index uzyc:

  1. <script src="jquery.js"></script>
Skie
Zawsze lepiej jest zmniejszać liczbę requestów do serwera - każdy plik JS ładowany w ten sposób - to kolejny request. Dlatego opcja nr2 to jedyna słuszna opcja.

Dodatkowo, w większych projektach po stronie serwera robi się to tak, że wszystkie pliki *.js, które projekt używa są sklejane razem w jeden wynikowy plik, który jest wysyłany do przeglądarki.
Comandeer
No to trochę teraz zamieszam… wink.gif

A jeśli strona stoi na HTTP/2 i można zastosować push? Wówczas nie ma znaczenia de facto ile plików będziemy mieli. Dodatkowo wklejenie wszystkiego w head nie działa domyślnie z aplikacjami stojącymi na serwerach z CSP.

Sensowny sposób, który jest dobrym kompromisem, to to, co proponuje H5BP: dwa pliki JS. jQuery ciągnięte z CDN oraz nasz lokalny plik z kodem JS, zminifikowany. Jeśli będziemy jQuery ciągnąć z CDN Google jest szansa, że user ten plik już ma, więc zostanie pobrany z cache. Natomiast zostanie dociągnięty tylko drugi plik. Oczywiście obydwa powinny być na końcu body, nie zaś w head (w head jedynie asynchroniczny kod statystyk można wstawić) → https://developer.yahoo.com/performance/rules.html#js_bottom

Przykład z H5BP: https://github.com/h5bp/html5-boilerplate/b.../index.html#L25

Inline'ować kod JS można jeśli strona spełnia trzy warunki:
1) nie stoi na CSP
2) kodu JS nie jest za dużo
3) jest on zminifikowany
Wówczas i tak lepiej inline'ować na końcu body (żeby strona zaczęła się renderować jak najszybciej).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.