中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

javascript中的defer是什么

發布時間:2021-07-21 16:31:06 來源:億速云 閱讀:165 作者:chen 欄目:web開發

這篇文章主要講解了“javascript中的defer是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“javascript中的defer是什么”吧!

defer告訴瀏覽器Script段包含了無需立即執行的代碼,并且與SRC屬性聯合使用,它還可以使這些腳本在后臺被下載,前臺的內容則正常顯示給用戶;語法“<script defer>js代碼</script>”。

本教程操作環境: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型腳本程序段中包括任何立即執行腳本要使用的全局變量或者函數。

一個常用的優化性能的方法是:當腳本不需要立即運行時,在<SCRIPT>標簽中設置“defer”屬性。 (立即腳本沒有被包含在一個function塊中,因此會在加載過程中執行。) 設置“defer”屬性后,IE就不必等待該腳本裝載和執行完畢。這樣頁面加載會更快。一般來說,這也表明立即腳本最好放在function塊中,并在 document或者body對象的onload 句柄中處理該函數。在有一些腳本需要依賴用戶操作而執行時----例如點擊按鈕,或者移動鼠標到某個區域----使用該屬性非常有用。但當有一些腳本需要在頁面加載過程中或加載完成后執行,使用defer屬性得到的好處就不太大。

script中的defer屬性默認情況下是false的。按照DHTML編程寶典中的描述,對于Defer屬性是這樣寫的:

Using the attribute at design time can improve the download performance of a page because the browser does not need to parse and execute the script and can continue downloading and parsing the page instead.

也就是說:如果是編寫腳本的時候加入defer屬性,那么瀏覽器在下載腳本的時候就不必立即對其進行處理,而是繼續對頁面進行下載和解析,這樣會提高下載的性能。

這樣的情況有很多種。比如你定義了很多javascript變量,或者在引用文件(.inc)中寫了很多的腳本需要處理,那不妨在這些腳本中加入defer屬性,對性能的提高肯定有所幫助。

舉例如下:

<script language="javascript" defer>
var object = new Object();
....
</script>

因為defer屬性默認是為false的,那么在這里

<script language="javascript" defer>

顯式聲明defer屬性后等同于

<script language="javascript" defer=true>

聲明了defer屬性之后,需要判斷是否有別的變量引用了defer腳本塊中的變量,否則的話會導致腳本錯誤的產生。

感謝各位的閱讀,以上就是“javascript中的defer是什么”的內容了,經過本文的學習后,相信大家對javascript中的defer是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

法库县| 墨竹工卡县| 剑川县| 怀仁县| 临夏市| 徐闻县| 西乌珠穆沁旗| 孝义市| 监利县| 利辛县| 乐昌市| 玉树县| 潜山县| 洪江市| 江华| 托克托县| 昌邑市| 固阳县| 嵊泗县| 大田县| 阜南县| 富阳市| 涡阳县| 四子王旗| 霍山县| 天镇县| 娄烦县| 徐水县| 东乡| 永靖县| 淄博市| 黑山县| 吴旗县| 丹阳市| 迁西县| 怀集县| 鸡泽县| 伊川县| 体育| 淮阳县| 噶尔县|