পৃষ্ঠাটি পুরোপুরি লোড হয়ে গেলে আমার কিছু জাভাস্ক্রিপ্ট কোড চালানো দরকার। এর মধ্যে চিত্রের মতো জিনিস রয়েছে।
আমি জানি আপনি ডিওএম প্রস্তুত কিনা তা পরীক্ষা করতে পারেন তবে পৃষ্ঠাটি পুরোপুরি লোড হওয়ার পরে এটি একই হয় কিনা তা আমি জানি না।
পৃষ্ঠাটি পুরোপুরি লোড হয়ে গেলে আমার কিছু জাভাস্ক্রিপ্ট কোড চালানো দরকার। এর মধ্যে চিত্রের মতো জিনিস রয়েছে।
আমি জানি আপনি ডিওএম প্রস্তুত কিনা তা পরীক্ষা করতে পারেন তবে পৃষ্ঠাটি পুরোপুরি লোড হওয়ার পরে এটি একই হয় কিনা তা আমি জানি না।
উত্তর:
বলা হয় load। এটি ডওম প্রস্তুত হওয়ার আগেই এসেছিল এবং ডওম প্রস্তুতটি প্রকৃত কারণেই তৈরি হয়েছিল যা loadচিত্রগুলির জন্য অপেক্ষা করেছিল।
window.addEventListener('load', function () {
alert("It's loaded!")
})
window.onloadযখন প্রতিটি পৃষ্ঠার উপাদান / পুনর্নিবিশ্বে (যেমন * ছবি সহ) বলা হয়। আমি কি সঠিক?
onloadসমস্ত সংস্থান যা দস্তাবেজের অংশ হিসাবে অপেক্ষা করছে। এটি অবশ্যই ডায়নামিকভাবে তৈরি করা অনুরোধগুলি বাদ দেয় যা নথির নিজেই অংশ নয়, যেমন, একটি এজেএক্স অনুরোধ।
addEventListener("load", function(){... })পরিবর্তে মুছে onloadসম্পত্তি।
সাধারণত আপনি ব্যবহার করতে পারেন window.onloadতবে আপনি লক্ষ্য করতে পারেন যে সাম্প্রতিক ব্রাউজারগুলি window.onloadযখন আপনি পিছনে / ফরোয়ার্ড ইতিহাসের বোতামগুলি ব্যবহার করেন তখন ফায়ার হয় না ।
কিছু লোক এই সমস্যাটি সমাধান করার জন্য অদ্ভুত সংকোচনের পরামর্শ দেয় তবে সত্যিই যদি আপনি কেবল একটি window.onunloadহ্যান্ডলার তৈরি করেন (এমন কি এমন কিছু করেন না যা), এই ব্রাউজারে এই ক্যাচিং আচরণটি অক্ষম করা হবে । এমডিসি এই "বৈশিষ্ট্যটি" নথি চমত্কার, কিন্তু কোনো কারণে এখনও ব্যবহার লোক setIntervalএবং অন্যান্য অদ্ভুত হ্যাক।
অপেরার কয়েকটি সংস্করণে একটি বাগ রয়েছে যা আপনার পৃষ্ঠায় নিম্নলিখিত কোথাও যুক্ত করে কাজ করা যেতে পারে:
<script>history.navigationMode = 'compatible';</script>
যদি আপনি কেবল একবার ভিউ একবারে জাভাস্ক্রিপ্ট ফাংশন পাওয়ার চেষ্টা করছেন (এবং DOM লোড শেষ হওয়ার পরেও প্রয়োজন হয় না) তবে আপনি এরকম কিছু করতে পারেন:
<img src="javascript:location.href='javascript:yourFunction();';">
উদাহরণস্বরূপ, আমি লোডিং স্ক্রিনের ক্যাশে একটি খুব বড় ফাইল প্রিললোড করতে এই কৌশলটি ব্যবহার করি:
<img src="bigfile"
onload="this.location.href='javascript:location.href=\'javascript:doredir();\';';doredir();">
সম্পূর্ণতার জন্য, আপনি এটি ডিওএমকন্টেন্টলয়েডের সাথেও আবদ্ধ করতে চাইতে পারেন, যা এখন ব্যাপকভাবে সমর্থিত
document.addEventListener("DOMContentLoaded", function(event){
// your code here
});
আরও তথ্য: https://developer.mozilla.org/en-US/docs/Web/Events/DOMContentLoaded
$.readyআমি ভেবেছিলাম এটি একটি ভাল অবদান রেখেছিল। BTW। যদিও আমি আপনাকে একাধিক কলব্যাক করার অনুমতি দেয় - যদিও আমি addEventListenerএই loadঅনুষ্ঠানের জন্য-আদর্শবাদীটি ব্যবহার করব :window.addEventListener("load", function(event){ // your code here });
পুরো পৃষ্ঠাটি লোড হওয়ার পরে এটি চালানোর চেষ্টা করুন
জাভাস্ক্রিপ্ট দ্বারা
window.onload = function(){
// code goes here
};
Jquery দ্বারা
$(window).bind("load", function() {
// code goes here
});
$(window)আমাকে ভাবায় যে এটি jquery হবে - ঠিক? বা আমি কিছু জাভাস্ক্রিপ্ট সিনট্যাক্স বিভ্রান্ত করছি? (আমি জেএসে নতুন)
$(document).ready();যখন jQuery উপলব্ধ হয় কেবল কেন ব্যবহার করবেন না ?
এই কোড ব্যবহার করে দেখুন
document.onreadystatechange = function () {
if (document.readyState == "interactive") {
initApplication();
}
}
আরও তথ্যের জন্য https://developer.mozilla.org/en-US/docs/DOM/docament. तैयार স্টেট দেখুন
"interactive"পুরোপুরি বোঝা হয় না। "complete"সম্পূর্ণরূপে লোড হয়েছে
onLoad()ইভেন্টটি ব্যবহার করে জাভাস্ক্রিপ্ট , সম্পাদন করার আগে পৃষ্ঠাটি লোড হওয়ার জন্য অপেক্ষা করবে।
<body onload="somecode();" >
আপনি যদি jQuery ফ্রেমওয়ার্কের নথি প্রস্তুত ফাংশনটি ব্যবহার করেন তবে ডিওএম লোড হওয়ার সাথে সাথে পৃষ্ঠা পৃষ্ঠাগুলি লোড হওয়ার আগে কোডটি লোড হবে:
$(document).ready(function() {
// jQuery code goes here
});
আপনি উইন্ডো.অনলোডটি ব্যবহার করতে চাইতে পারেন , কারণ ডকসগুলি সূচিত করে যে DOM উভয় প্রস্তুত না হওয়া এবং পৃষ্ঠার সমস্ত অন্যান্য সম্পত্তি (চিত্র ইত্যাদি) লোড না হওয়া পর্যন্ত এটি চালিত হয় না।
এবং প্রোটোটাইপজেএস দিয়ে এটি করার একটি উপায় এখানে রয়েছে :
Event.observe(window, 'load', function(event) {
// Do stuff
});
আধুনিক জাভাস্ক্রিপ্ট (> = 2015) সহ আধুনিক ব্রাউজারগুলিতে type="module"আপনি আপনার স্ক্রিপ্ট ট্যাগে যুক্ত করতে পারেন এবং সেই স্ক্রিপ্টের ভিতরে থাকা সমস্ত কিছুই পুরো পৃষ্ঠা লোড হওয়ার পরে কার্যকর হবে। উদাহরণ:
<script type="module">
alert("runs after") // Whole page loads before this line execute
</script>
<script>
alert("runs before")
</script>
এছাড়াও পুরানো ব্রাউজারগুলি nomoduleবৈশিষ্ট্যটি বুঝতে পারবে । এটার মতো কিছু:
<script nomodule>
alert("tuns after")
</script>
আরও তথ্যের জন্য আপনি javascript.info দেখতে পারেন ।
onloadব্যবহারের প্রয়োজন হয় $(window).load(jQuery):$(window).load(function() {
//code
});
লোড থাকলে GlobalEventHandlers mixin সম্পত্তির একটি লোড ইভেন্টের জন্য একটি ইভেন্ট হ্যান্ডলার হয় উইন্ডো, XMLHttpRequest- এর উপাদান ইত্যাদি যা দাবানল যখন রিসোর্স লোড হওয়ার।
সুতরাং মূলত জাভাস্ক্রিপ্টটিতে ইতিমধ্যে উইন্ডোতে অনলোড পদ্ধতি রয়েছে যা কার্যকর হয় কোন পৃষ্ঠাতে চিত্রগুলি সহ পুরোপুরি লোড হয় ...
আপনি কিছু করতে পারেন:
var spinner = true;
window.onload = function() {
//whatever you like to do now, for example hide the spinner in this case
spinner = false;
};
2019 আপডেট: এটি আমার পক্ষে কাজ করেছিল এমন উত্তর। আমি তালিকা আইটেমগুলি গণনা করতে প্রথমে ডেটা ফায়ার এবং ফেরত দেওয়ার জন্য একাধিক এজ্যাক্স অনুরোধের প্রয়োজন হিসাবে।
$(document).ajaxComplete(function(){
alert("Everything is ready now!");
});