Son tarayıcılarda en kolay yol , onDOMContentLoaded , onload , onloadeddata (...) için uygun GlobalEventHandlers kullanmak olacaktır.
onDOMContentLoaded = (function(){ console.log("DOM ready!") })()
onload = (function(){ console.log("Page fully loaded!") })()
onloadeddata = (function(){ console.log("Data loaded!") })()
DOMContentLoaded olayı, ilk HTML belgesi tamamen yüklendiğinde ve ayrıştırıldığında, stil sayfaları, görüntüler ve alt çerçevelerin yüklenmesini beklemeden tetiklenir. Çok farklı bir olay yükü, yalnızca tam yüklü bir sayfayı algılamak için kullanılmalıdır. DOMContentLoaded'in çok daha uygun olacağı yükü kullanmak inanılmaz derecede popüler bir hatadır, bu yüzden dikkatli olun.
https://developer.mozilla.org/en-US/docs/Web/Events/DOMContentLoaded
Kullanılan işlev, hazır olduğunda kendini tetiklediği için bu durumda çok yararlı olan bir IIFE'dir:
https://en.wikipedia.org/wiki/Immediately-invoked_function_expression
Açıkçası herhangi bir komut dosyasının sonuna yerleştirmek daha uygundur.
ES6'da bir ok işlevi olarak da yazabiliriz:
onload = (() => { console.log("ES6 page fully loaded!") })()
En iyisi DOM öğelerini kullanmaktır, oklu IIFE'yi tetikleyen herhangi bir değişkenin hazır olmasını bekleyebiliriz.
Davranış aynı olacaktır, ancak daha az bellek etkisi olacaktır.
footer = (() => { console.log("Footer loaded!") })()
<div id="footer">
Çoğu durumda, belge nesnesi de hazır olduğunda , en azından tarayıcımda tetikleniyor . Sözdizimi çok güzel, ancak uyumluluklarla ilgili daha fazla teste ihtiyaç duyuyor.
document=(()=>{ /*Ready*/ })()
$(document).ready()
bir kütüphane kullanmadan jQuery'nin etkinliğini yeniden oluşturmak istiyorsanız , şuna bir göz atın: stackoverflow.com/questions/1795089/…