2011-12-19 12 views
14

हाल ही में मैंने देखा कि आप jQuery के लिए इस्तेमाल कर सकते हैं कि या तोमैं window.load या document.ready jQuery का उपयोग करना चाहिए

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

या

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

हालांकि, वे मेरे लिए समान लगते हैं! लेकिन स्पष्ट रूप से नहीं हैं।

तो मेरा सवाल यह है कि: मुझे एनीमेशन और एसिंक पर आधारित वेबसाइट प्रकार के लिए किस का उपयोग करना चाहिए? और दोनों में से कौन सा आम तौर पर उपयोग करने के लिए बेहतर है?

धन्यवाद।

+0

आप इसका उपयोग करने की कोशिश कर रहे हैं? अक्सर जवाब "न तो" होता है। क्या आप ऐसा कुछ कर रहे हैं जिसके लिए 'तैयार' की बजाय 'लोड' की आवश्यकता है? –

+0

[window.onload बनाम document.ready] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/3698200/window-onload-vs-document-ready) – pimvdb

+0

@pimvdb यह jquery है, इसलिए कोई डुप्ली नहीं है। –

उत्तर

31

$('document').ready DOM के तैयार होने कोड चलाता है, लेकिन नहीं जब पेज ही लोड हो जाए, वह है, साइट चित्रित नहीं किया गया है और छवियों की तरह सामग्री लोड नहीं किया गया है।

$(window).load पृष्ठ को चित्रित करते समय कोड चलाता है और सभी सामग्री लोड हो जाती है। यह तब उपयोगी हो सकता है जब आपको किसी छवि का आकार प्राप्त करने की आवश्यकता हो। यदि छवि में कोई शैली या चौड़ाई/ऊंचाई नहीं है, तो आप इसका आकार तब तक नहीं प्राप्त कर सकते जब तक कि आप $(window).load का उपयोग न करें।

7

खैर सब से पहले आप "तैयार" घटना है, जो आपको इस तरह हैंडलर कर सकते हैं का उपयोग कर विचार कर सकते हैं: या, और अधिक संक्षेप और मुहावरे

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

:

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

" लोड "हैंडलर वास्तव में एक वास्तविक घटना से संबंधित है, और उदाहरण के लिए <img> और तत्वों के कई अलग-अलग प्रकारों पर संभाला जा सकता है। दस्तावेज़ या विंडो स्तर पर "लोड" ईवेंट तब होता है जब सभी पृष्ठ के संसाधन लोड होते हैं। (कुछ ब्राउज़रों में संश्लेषित) "तैयार" घटना तब होती है जब पृष्ठ डोम तैयार होता है लेकिन संभवतः <img> सामग्री जैसी चीज़ों से पहले।

एक और विकल्प <body> के बहुत अंत में या <body> के अंत में अपने <script> टैग को बस रखना है। इस तरह स्क्रिप्ट में पूरे डोम के साथ काम करने के लिए है, लेकिन आपको यह जानने के लिए किसी भी प्रकार की घटना प्रबंधन के बारे में चिंता करने की ज़रूरत नहीं है।