国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

<script defer> defer 是什么意思

2019-11-21 01:22:43
字體:
來源:轉載
供稿:網友
程序下載完后再進行解析和執行。
文檔上說defer中的代碼不立即執行,頁面會繼續載入,那defer中的代碼具體在什么時候執行呢?在全部javascript代碼載入之后?頁面載入之后?onload之前還是之后?

答案是:

并不是說在網頁載入時不執行,可以在網頁寫一個SCRIPT.然后定義它,但是在載入時它還是執行了,
后來在找其它的東東時發現,因為它不有個子, 不知它是如何用,
原來它是在你的網頁已截入完成后,你想動態添加一個新的<script>時用的,如果你只是object.innerHTML = "<script" + ">"..."</script" + ">";
那么當你調用你這個新定義的東東就會出錯,說還未定義,當你在上面的代碼加入defer時那么你就能成功調用它,
在下面的代碼中你可以試下把它去掉, defer>";,那么你就會發現問題!
<HTML>
<SCRIPT>
function insertScript(){
var sHTML="<input type=button onclick=" + "go2()" + " value='Click Me'><BR>";
var sScript="<SCRIPT defer>";
sScript = sScript + "function go2(){ alert('Hello from inserted script.') }";
sScript = sScript + "</SCRIPT" + ">";
ScriptDiv.innerHTML = sHTML + sScript;
}
</SCRIPT>
<BODY onload="insertScript();">
<DIV ID="ScriptDiv"></DIV>
</BODY>
</HTML>

//defer屬性指示該段腳本不會改變文檔的內容。在文檔完全顯示之前,js解釋器不執行這段代碼。
具體到這個例子,因為js不允許動態生成js代碼,所以去掉defer后產生的代碼會被認為是非法的。加上defer后的代碼,會被解釋器認為是載入頁面的時候跳過去的,可以執行。

<script src="../js/script.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屬性得到的好處就不太大。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新兴县| 荔浦县| 贺兰县| 泰兴市| 桑日县| 固阳县| 敦煌市| 汪清县| 临邑县| 定安县| 黑水县| 广饶县| 安宁市| 洪湖市| 松溪县| 扬中市| 鹤庆县| 广昌县| 清河县| 怀集县| 抚松县| 炉霍县| 苏州市| 湾仔区| 河北区| 米易县| 教育| 洛阳市| 洪湖市| 宁国市| 林州市| 乐清市| 大连市| 喀什市| 临夏市| 常山县| 宝兴县| 贵德县| 贵德县| 锦屏县| 新疆|