2011-12-19 17 views
14

Ostatnio widziałem, że można użyćpowinienem używać window.load lub document.ready jQuery

$('document').ready(function() { 
//Do Code 
}); 

lub

$('window').load(function() { 
//Do Code 
}); 

dla jQuery.

Jednak wydają się takie same dla mnie! Ale wyraźnie nie są.

Moje pytanie brzmi: do jakiego rodzaju strony internetowej należy użyć animacji i asynchronizacji? A także który z tych dwóch ogólnie lepiej jest użyć?

Dzięki.

+0

Do czego próbujesz go użyć? Często odpowiedź brzmi "nie". Czy robisz coś, co wymaga 'load' zamiast' ready'? –

+0

możliwy duplikat [window.onload vs document.ready] (http://stackoverflow.com/questions/3698200/window-onload-vs-document-ready) – pimvdb

+0

@pimvdb to jest jquery, więc nie jest dup. –

Odpowiedz

31

$('document').ready uruchamia kod gdy DOM jest gotowy, ale nie wtedy, gdy sama strona jest załadowany, to znaczy, że strona nie został namalowany i treści jak obrazy nie zostały załadowane.

$(window).load uruchamia kod po pomalowaniu strony i załadowaniu całej zawartości. Może to być pomocne, gdy potrzebujesz uzyskać rozmiar obrazu. Jeśli obraz nie ma stylu ani szerokości/wysokości, nie można uzyskać jego rozmiaru, chyba że używasz $(window).load.

7

Dobrze przede wszystkim może warto rozważyć użycie "gotowy" wydarzenie, które można Handler tak:

$().ready(function() { 
    ... 
}); 

Albo, bardziej zwięzły i idiomatically:

$(function() { 
    ... 
}); 

The " load "handler rzeczywiście odnosi się do rzeczywistego zdarzenia i może być obsługiwany na kilka różnych rodzajów elementów: na przykład <img> i . Zdarzenie "load" na poziomie dokumentu lub okna występuje po załadowaniu wszystkich zasobów strony. Zdarzenie "gotowe" (syntetyzowane w niektórych przeglądarkach) dzieje się jednak, gdy strona DOM jest gotowa, ale prawdopodobnie przed takimi treściami jak:.

Inną opcją jest po prostu umieścić swoje znaczniki <script> na samym końcu <body> lub nawet po <body>. W ten sposób skrypty mają cały DOM, z którym można pracować, ale nie musisz się martwić o jakiekolwiek zdarzenia, żeby to wiedzieć.

Powiązane problemy