簡體   English   中英

window.onload在Javascript中的位置

[英]Position of window.onload in Javascript

我有這樣的JavaScript代碼

<script type="text/javascript">
window.onload=myFunction;
</script>

<head></head>標記和</body>標記之前使用上面的代碼片段有什么區別,因為我想在頁面加載后調用我的函數。

基本上沒有實際差異,但我建議

  1. 將代碼放在底部,因為您需要使用腳本(blocking-rendering標簽),所以最好將其放在文檔的末尾。

  2. 為了避免這樣的破壞性分配:編寫window.onload=myFunction可以銷毀對window.onload事件的其他先前分配(如果有的話),所以最好是這樣

     (function() { var previousOnLoadIfAny = window.onload; window.onload = function() { if (typeof previousOnLoadIfAny === 'function') { previousOnLoadIfAny(); } yourfunction(); } }()); 

load事件觸發時,綁定到window.onload將始終運行您的函數。 這僅在頁面中的所有內容(包括圖像等)完成加載后才觸發。如果要在DOM完成加載后但在其他所有操作之前運行函數,則可以綁定到DOMContentLoaded事件或使用jQuery之類的庫(例如$(function(){ myFunction() }); )。

將函數放在<body>末尾的好處是,從理論上講,這意味着您的其余內容已經加載,並且不需要將函數綁定到load事件。 有時這可行,但要視情況而定。

不,您放置的位置無關緊要-文檔中的任何位置,當文檔和所有外部資源(圖像,腳本等)已加載時,它將觸發。

因為onload在所有外部資源之后觸發,所以人們通常想使用DOMContentLoaded來代替,而后者在HTML DOM准備就緒時觸發。 這將使頁面更具響應性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM