2012-07-25 11 views
5

Używam javascript dla niektórych, a teraz i ostatnio zaczął używać jquery, które przyznaję, jestem fanem. <script type='text/javascript' src='../locationOfJquery/jquery.js'></script> umożliwia korzystanie z biblioteki w znacznikach skryptu na tej stronie. Co chcę wiedzieć, czy właśnie w tym znaczniki skryptów spowalnia czas ładowania strony każdy, nawet jeśli nie ma kodu jQuery na stronie, a także czy są jakieś inne poważne wady użyciem jQueryCzy są jakieś minusy dotyczące dołączania biblioteki jquery na mojej stronie?

+0

Zminializowane źródło jQuery to 32kb.Nie uwzględniłbym, chyba że faktycznie go używasz. jQuery jest niesamowity, nie ma wady! –

+1

Gdyby to było 1999, powiedziałbym tak. Ale w dzisiejszych czasach, gdzie większość ludzi ma lepszą funkcję niż dial-up, nie ... nie wpłynie to na wydajność, jeśli po prostu dołączymy inne pliki JS. – kevin628

+1

Jest wadą jQuery ... będąc członkiem SO przez jakiś czas, widziałem dość przerażające zastosowania jQuery tylko dlatego, że czyni to bardzo łatwym. Łatwo jest tworzyć niepotrzebnie nieefektywne skrypty, szczególnie jeśli uczysz się jQuery przed javascript, co robi wielu początkujących. –

Odpowiedz

5
  • Włóż znaczniki skryptów u dołu strony. Nie spowolni to procesu przetwarzania DOM, zanim uruchomią się zdarzenia ładowania.
  • Użyj minifikowanej wersji jQuery, która jest tak mała jak mały obraz/ikona.
  • Jeśli odwiedzający odwiedzą więcej niż jedną stronę w swojej witrynie, będzie ona również przechowywana w pamięci podręcznej po pierwszej wizycie. Może być już wstępnie buforowany (lub obsługiwany z serwera o większej liczbie lokalnych serwerów), jeśli korzystasz z sieci dostarczania treści (np. Google). Dobre pierwsze wrażenia są krytyczne.

Aby dodatkowo odpowiedzieć na pytania, które miały mniejsze:

  • Jeśli nie ma kodu na stronie jQuery, jQuery musi nadal być analizowany. Możesz sprawdzić, ile czasu zajmuje komputerowi analizowanie jQuery za pomocą narzędzia do profilowania, takiego jak Chrome.
  • Istnieje ramy, które optymalizują swój skrypt na podstawie na stronie, ale te muszą kompromis zdolność buforowania skrypt porównaniu zysków w szybszym parsowania. Prawie na pewno nie powinieneś się o nie martwić. jQuery jest bardzo lekki w porównaniu do innych frameworków.

liczbach:

Na przykład na Chrome podczas ładowania strony internetowej StackOverflow, prosząc biblioteki jQuery z Google CDN, wyniki były następujące:

  • 0.027ms łączny czas spędzone pobranie jQuery (być może buforowane)
  • Łączny czas spędzony na ocenie jQuery i wykonaniu domyślnego DOM/domeny: 35.992 ms Operacje CSS

To wszystko jest względne oczywiście. Założę się, że po załadowaniu tej strony nie zauważyłeś żadnego opóźnienia, ponieważ załadowanie całej strony zajęło około 630 ms.

+0

OK, tak, nie powinno być żadnych zmartwień w jego implementacji. – John

0

Nie należy go dołączać, jeśli go nie używasz.

32k to mała cena do zapłacenia, ale lepiej nie mieć prośbę i 0k dodatkowo ściągnąć.

także, co ważniejsze, można uruchomić w konflikty z innymi ramami jeśli używasz żadnego.

+0

W tej chwili nie interesuję się głównie optymalizacją czasu ładowania jednej z moich większych stron internetowych, ale funkcjonalność jQuery jest zdecydowanie wygodna. – John

+0

Nie ma to żadnego istotnego wpływu na czas wczytywania, ponieważ przeglądarka zrobi to w pamięci podręcznej, a czas jego uruchomienia jest niewielki. Zgadzam się, że lepiej nie umieszczać go na stronach, które nie są używane, ale nie na tyle, aby się tym przejmować, chyba że jest to naprawdę łatwe (np. Twój framework zawiera już koncepcję warunków warunkowych). Nie warto tracić czasu na sen. Jeśli masz wolną stronę, nie jest to wina jQuery. –

+1

Jeśli rozważasz użycie jQuery, to nie martwię się o to teraz. Optymalizacja, którą robisz poprzez wykluczenie jej jest niewielka. – Andrew

2

Klient będzie musiał pobrać skrypt jQuery (co jest dość mały). Aby jeszcze bardziej zoptymalizować, wystarczy użyć hostowanych wersji "Content Delivery Network" od Google lub Microsoft. Pamiętaj też, aby użyć wersji minified, która jest szybsza.

This article stwierdza przyczyny.

+2

Używanie CDN nie zmieni zbyt wiele. To jest lepsze dla świata i twojego serwera niż dla pojedynczego użytkownika. Może je zapisać z jednego pobrania, ale po raz pierwszy ktoś trafi na twoją stronę, nie będzie musiał ponownie pobierać jQuery, czy jest połączony z CDN lub z twoim serwerem. Nie mówię, że to nie jest dobre, ale nie zmieni ogólnego profilu witryny za pomocą jQuery. –

+0

Tak, zgadzam się, że jest to pomijalna optymalizacja, ale mimo to może zaoszczędzić to pojedyncze pobieranie dla większości użytkowników (jeśli masz miliony nowych użytkowników, co oznacza 30 Kb/s, a miliony użytkowników przepustowości łącza), a także zmniejszyć opóźnienie dla kilku innych użytkownicy, którzy muszą go pobrać. W sumie jest to sytuacja wygrana. Myślę, że warto wskoczyć na modę. –

Powiązane problemy