<button id="myButton1" onclick="alert('ok1')">test1</button> javascript
<script> java
myButton1.click(); 編程
</script> 瀏覽器
<script defer> ide
myButton2.click(); 函數
</script> 性能
<button id="myButton2" onclick="alert('ok2')">test2</button> spa
<script> code
myButton3.click(); orm
</script>
<button id="myButton3" onclick="alert('ok3')">test3</button>
<button id="myButton1" onclick="alert('ok1')">test1</button>
<script>
myButton1.click();
</script>
<script defer>
myButton2.click();
</script>
<button id="myButton2" onclick="alert('ok2')">test2</button>
<script>
myButton3.click();
</script>
<button id="myButton3" onclick="alert('ok3')">test3</button>
Script中的Defer屬性
若是你是一個對系統性能比較關心和在乎的人,我想你應該會對Script腳本中的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的,那麼在這裏
顯式聲明defer屬性後等同於
聲明瞭defer屬性以後,須要判斷是否有別的變量引用了defer腳本塊中的變量,不然的話會致使腳本錯誤的產生。