de-vraag
  • Pytania
  • Tagi
  • Użytkownicy
Powiadomienia
Nagrody
Rejestracja
Po zarejestrowaniu się, będziesz otrzymywać powiadomienia o odpowiedziach i komentarzach do swoich pytań.
Zaloguj się
Brak tłumaczeń pasujących do Twojego wyszukiwania Jeśli masz już konto, zaloguj się, aby sprawdzić nowe powiadomienia.
Za dodane pytania, odpowiedzi i komentarze przewidziane są nagrody.
Więcej
Źródło
Edytuj
Vaibhav Jain
Vaibhav Jain
Question

window.onload vs $(document).ready()

Jakie są różnice między metodą JavaScript'a window.onload i metodą jQuery'a $(document).ready()?

1203 2010-09-13T06:24:52+00:00 3
Brian  Tompsett - 汤莱恩
Brian Tompsett - 汤莱恩
Edytowane pytanie 1. września 2019 в 6:53
Programowanie
javascript
jquery
dom-events
unobtrusive-javascript
To pytanie ma 1 odpowiedź w języku angielskim, aby je przeczytać zaloguj się na swoje konto.
Solution / Answer
 Guffa
Guffa
13. września 2010 в 6:28
2010-09-13T06:28:21+00:00
Więcej
Źródło
Edytuj
#11025953

Zdarzenie ready występuje po załadowaniu dokumentu HTML, natomiast zdarzenie onload występuje później, kiedy cała zawartość (np. obrazki) również została załadowana.

Zdarzenie onload jest standardowym zdarzeniem w DOM, podczas gdy zdarzenie ready jest specyficzne dla jQuery. Celem zdarzenia ready jest to, że powinno ono wystąpić jak najwcześniej po załadowaniu dokumentu, tak aby kod dodający funkcjonalność do elementów na stronie nie musiał czekać na załadowanie całej zawartości.

 user664833
user664833
Edytowana odpowiedź 2. października 2014 в 4:37
1199
0
 Piskvor
Piskvor
13. września 2010 в 6:30
2010-09-13T06:30:04+00:00
Więcej
Źródło
Edytuj
#11025955

Wbudowanym zdarzeniem JavaScript jest window.onload, ale jako że jego implementacja miała subtelne dziwactwa w różnych przeglądarkach (Firefox, Internet Explorer 6, Internet Explorer 8, i Opera), jQuery dostarcza document.ready, który abstrahuje od tego, i odpala się tak szybko, jak tylko strona'DOM jest gotowa (nie czeka na obrazki, itp.).

Funkcja $(document).ready (zauważ, że nie jest to nie document.ready, który jest niezdefiniowany) jest funkcją jQuery, opakowującą i zapewniającą konsekwencję dla następujących zdarzeń:

  • document.ondomcontentready / document.ondomcontentloaded - newish event, który odpala się, gdy dokument's DOM jest załadowany (co może być jakiś czas przed załadowaniem obrazków, etc.); znów, nieco inaczej w Internet Explorerze i w reszcie świata
  • oraz window.onload (który jest zaimplementowany nawet w starych przeglądarkach), który odpala się gdy ładuje się cała strona (obrazki, style, etc.)
Peter Mortensen
Peter Mortensen
Edytowana odpowiedź 11. kwietnia 2016 в 9:26
133
0
 deck
deck
27. sierpnia 2012 в 6:56
2012-08-27T18:56:57+00:00
Więcej
Źródło
Edytuj
#11025956

Słowo ostrzeżenia na temat używania $(document).ready() z Internet Explorerem. Jeśli żądanie HTTP zostanie przerwane przed załadowaniem całego dokumentu (na przykład, podczas gdy strona jest przesyłana do przeglądarki, inny link został kliknięty) IE wywoła zdarzenie $(document).ready.

Jeśli jakikolwiek kod wewnątrz zdarzenia $(document).ready() odwołuje się do obiektów DOM, istnieje możliwość, że obiekty te nie zostaną znalezione i mogą wystąpić błędy Javascript. Albo strzeż swoich odniesień do tych obiektów, albo odraczaj kod, który odwołuje się do tych obiektów do zdarzenia window.load.

Nie udało mi się odtworzyć tego problemu w innych przeglądarkach (konkretnie w Chrome i Firefox)

 khr055
khr055
Edytowana odpowiedź 27. sierpnia 2012 в 7:34
22
0
Dodaj pytanie
Kategorie
Wszystkie
Technologia
Kultura / Rekreacja
Życie / Sztuka
Nauka
Profesjonalny
Biznes
Użytkownicy
Wszystkie
Nowy
Popularny
1
365
Zarejestrowany 1 dzień temu
2
True Image
Zarejestrowany 1 dzień temu
3
archana agarwal
Zarejestrowany 3 dni temu
4
Maxim Zhilyaev
Zarejestrowany 6 dni temu
5
adambotsfford adambotsfford
Zarejestrowany 1 tydzień temu
DE
EL
ES
FR
ID
IT
JA
KO
LV
NL
PL
PT
ZH
© de-vraag 2022
Źródło
stackoverflow.com
na podstawie licencji cc by-sa 3.0 z przypisaniem