উত্তর:
থেকে মজিলা ডেভেলপার কেন্দ্র :
স্ট্রোলশিট, চিত্র এবং সাবফ্রেমগুলি লোডিং শেষ করার জন্য অপেক্ষা না করেই ডকুমেন্টটি সম্পূর্ণ লোড এবং পার্স করা হয়ে গেলে ডমকনটেন্টলয়েড ইভেন্টটি বরখাস্ত করা হয় (লোড ইভেন্টটি সম্পূর্ণ লোড হওয়া পৃষ্ঠাটি সনাক্ত করতে ব্যবহার করা যেতে পারে)।
DOMContentLoaded
ঘটনা গুলি যত তাড়াতাড়ি করে DOM অনুক্রমের সম্পূর্ণরূপে নির্মাণ করা হয়েছে, হবে load
ঘটনা এটা করতে হবে যখন সমস্ত চিত্র ও উপ-ফ্রেম সমাপ্ত লোড আছে।
DOMContentLoaded
বেশিরভাগ আধুনিক ব্রাউজারগুলিতে কাজ করবে, তবে আইই 9 এবং তারপরের IE সহ নয় । আইই এর পুরানো সংস্করণগুলিতে এই ইভেন্টটির নকল করার জন্য কিছু কর্মসীমা রয়েছে , যেমন jQuery লাইব্রেরিতে ব্যবহৃত যেমন, তারা IE নির্দিষ্ট onreadystatechange
ইভেন্ট সংযুক্ত করে ।
পার্থক্যটি নিজে দেখুন:
মাইক্রোসফ্ট আইই থেকে
বর্তমান পৃষ্ঠার পার্সিং সম্পূর্ণ হওয়ার সাথে সাথে ডমকন্টেন্টলয়েড ইভেন্টটি জ্বলে উঠল; সমস্ত ফাইল বিজ্ঞাপন এবং ইমেজ সহ সমস্ত সংস্থান থেকে লোড করা শেষ করলে লোড ইভেন্টটি জ্বলে ওঠে। জটিল ওয়েব পৃষ্ঠাগুলিতে ইউআই কার্যকারিতা হুকআপ করার জন্য ডমকন্টেন্টলয়েড একটি দুর্দান্ত ইভেন্ট।
থেকে মজিলা ডেভেলপার নেটওয়ার্ক
স্ট্রোলশিট, চিত্র এবং সাবফ্রেমগুলি লোডিং শেষ করার জন্য অপেক্ষা না করেই ডকুমেন্টটি সম্পূর্ণ লোড এবং পার্স করা হয়ে গেলে ডমকনটেন্টলয়েড ইভেন্টটি বরখাস্ত করা হয় (লোড ইভেন্টটি সম্পূর্ণ লোড হওয়া পৃষ্ঠাটি সনাক্ত করতে ব্যবহার করা যেতে পারে)।
DOMContentLoaded
গ্যারান্টি সব স্ক্রিপ্ট (মুলতবি / ASYNC সহ) লোড করা হয়েছে কেন? স্ক্রিপ্টগুলি সম্পর্কে এখানে কিছু বলা হয় না: বিকাশকারী.মোজিলা.আর.ইন.ইউএস
DOMContentLoaded
==window.onDomReady()
Load
==window.onLoad()
দস্তাবেজ "প্রস্তুত" না হওয়া পর্যন্ত কোনও পৃষ্ঠা নিরাপদে হেরফের করা যায় না। jQuery আপনার জন্য এই প্রস্তুতির অবস্থা সনাক্ত করে। কোডটি $ (দস্তাবেজ) এর মধ্যে অন্তর্ভুক্ত রয়েছে ready কোডটি $ (উইন্ডো) এর অন্তর্ভুক্ত রয়েছে load
দেখুন: http://learn.jquery.com/ using-jquery-core / docament- तैयार/
ডোমকন্টেন্টলয়েড : পয়েন্টটি চিহ্নিত করে যখন উভয় ডিওএম প্রস্তুত থাকে এবং এমন কোনও স্টাইলশিট নেই যা জাভাস্ক্রিপ্ট সম্পাদন অবরুদ্ধ করে - যার অর্থ আমরা এখন (সম্ভাব্যভাবে) রেন্ডার ট্রি তৈরি করতে পারি। অনেক জাভাস্ক্রিপ্ট ফ্রেমওয়ার্ক তাদের নিজস্ব যুক্তি সম্পাদন শুরু করার আগে এই ইভেন্টটির জন্য অপেক্ষা করে। এই কারণে ব্রাউজারটি ইভেন্ট স্টার্ট এবং ইভেন্টএন্ড টাইমস্ট্যাম্পগুলি ক্যাপচার করে যাতে এটি কার্যকর করতে কত সময় লেগেছিল তা ট্র্যাক করার অনুমতি দেয়।
লোডএভেন্ট : প্রতিটি পৃষ্ঠার চূড়ান্ত পদক্ষেপ হিসাবে ব্রাউজারটি লোড করে একটি "অনলোড" ইভেন্ট যা অতিরিক্ত অ্যাপ্লিকেশন যুক্তিকে ট্রিগার করতে পারে।
আমাদের জন্য কাজ করে এমন কিছু কোড এখানে। আমরা এমএসআইইকে হিট এবং মিস করতে দেখেছি DomContentLoaded
, অতিরিক্ত সংস্থানগুলি ক্যাশ না করাতে কিছুটা বিলম্ব হবে বলে মনে হচ্ছে (আমাদের কনসোল লগিংয়ের উপর ভিত্তি করে 300 মিমি অবধি), এবং যখন তারা ক্যাশ করা হয় তখন এটি খুব দ্রুত ট্রিগার হয়। সুতরাং আমরা এমআইএসইয়ের জন্য একটি ফ্যালব্যাক নিয়েছিলাম। আপনার বাহ্যিক জেএস ফাইলগুলির আগে বা পরে ট্রিগার হ'ল আপনি doStuff()
ফাংশনটি ট্রিগার করতে চান DomContentLoaded
।
// detect MSIE 9,10,11, but not Edge
ua=navigator.userAgent.toLowerCase();isIE=/msie/.test(ua);
function doStuff(){
//
}
if(isIE){
// play it safe, very few users, exec ur JS when all resources are loaded
window.onload=function(){doStuff();}
} else {
// add event listener to trigger your function when DOMContentLoaded
if(document.readyState==='loading'){
document.addEventListener('DOMContentLoaded',doStuff);
} else {
// DOMContentLoaded already loaded, so better trigger your function
doStuff();
}
}