2011-12-19 8 views
14

Recentemente ho visto che si può utilizzare siaDevo usare window.load o document.ready jquery

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

o

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

per jQuery.

Tuttavia, mi sembrano uguali! Ma chiaramente non lo sono.

Quindi la mia domanda è: quale dovrei usare per un sito Web in base all'animazione e all'async? E anche quale dei due è generalmente meglio usare?

Grazie.

+0

A cosa stai cercando di usarlo? Spesso la risposta è "nessuno". Stai facendo qualcosa che richiede 'load' invece di' ready'? –

+0

possibile duplicato di [window.onload vs document.ready] (http://stackoverflow.com/questions/3698200/window-onload-vs-document-ready) – pimvdb

+0

@pimvdb questo è jquery, quindi non è un dup. –

risposta

31

$('document').ready esegue il codice quando il DOM è pronto, ma non quando la pagina si è caricata, cioè, il sito non è stato dipinto e contenuti come immagini non sono state caricate.

$(window).load esegue il codice quando la pagina è stata dipinta e tutto il contenuto è stato caricato. Questo può essere utile quando è necessario ottenere la dimensione di un'immagine. Se l'immagine non ha stile o larghezza/altezza, non puoi ottenere le sue dimensioni a meno che non usi $(window).load.

7

Ben prima di tutto si può prendere in considerazione l'utilizzo della manifestazione "pronto", che si può handler in questo modo:

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

O, più succintamente e idiomaticamente:

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

Il " load "handler si riferisce realmente a un evento reale e può essere gestito su diversi tipi di elementi: <img> e per esempio. L'evento "load" a livello di documento o finestra si verifica quando vengono caricate tutte le risorse della pagina. L'evento "pronto" (sintetizzato, in alcuni browser) si verifica comunque quando la pagina DOM è pronta, ma probabilmente prima di cose come il contenuto di <img>.

Un'altra opzione consiste semplicemente nel mettere i tag <script> alla fine dello <body> o anche dopo lo <body>. In questo modo gli script hanno l'intero DOM con cui lavorare, ma non devi preoccuparti di alcun tipo di gestione degli eventi per saperlo.