defer告訴瀏覽器Script段包含了無需立即執行的程式碼,並且與SRC屬性聯合使用,它還可以使這些腳本在後台被下載,前台的內容則正常顯示給用戶;語法「< ;script defer>js程式碼」。
本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。
很多人都已經把Javascript的用的爐火純青了,但見到defer未必就知道他是做什麼用的;很多人也都遇到過這樣的問題,需要直接執行別且操作DOM物件的js 總是報找不到物件的錯誤,原因大家也都知道就是頁面還有沒有載入完畢,js的操作對象還在下載中。但很多人都不知道,加上defer標籤就能輕易的解決這個問題。
<script src="../CGI-bin/delscript.js" defer></script>
中的defer作用是文檔加載完畢了再執行腳本,這樣迴避免找不到對象的問題---有點問題
<button id="myButton" onclick="alert('ok')">test</button> <script> myButton.click(); </script> <script> myButton.click(); </script> <button id="myButton" onclick="alert('ok')">test</button> <script defer> function document.body.onload() { alert(document.body.offsetHeight); } </script>
加上defer 等於在頁面完全在入後來執行,相當於window.onload ,但應用程式比window.onload 更有彈性!
defer是腳本程式強大功能中的一個「無名英雄」。它告訴瀏覽器Script段包含了無需立即執行的程式碼,並且,與SRC屬性聯合使用,它還可以使這些腳本在後台被下載,前台的內容則正常顯示給用戶。
--但是文件載入完畢了再執行腳本
請注意兩點:
1、不要在defer型的腳本程式段中呼叫document.write指令,因為document.write將產生直接輸出效果。
2、而且,不要在defer型腳本程式段中包含任何立即執行腳本要使用的全域變數或函數。
一個常用的最佳化效能的方法是:當腳本不需要立即執行時,在