標籤:bsp 屬性 round 連結 元素 動態 頁面 javascrip window
1、瀏覽器遇到js代碼會暫停頁面的下載和渲染,誰曉得js代碼會不會把html給強姦(改變)了;
2、延遲指令碼載入:defer 屬性
<html><head> <title>Script Defer Example</title></head><body> <script type="text/javascript" defer> alert("defer"); </script> <script type="text/javascript"> alert("script"); </script> <script type="text/javascript"> window.onload = function(){ alert("load"); }; </script></body></html>
不支援 defer 屬性的瀏覽器的彈出順序是:“defer”、“script”、“load”。而在支援 defer 屬性的瀏覽器上,彈出的順序則是:“script”、“defer”、“load”。請注意,帶有 defer 屬性的<script>元素不是跟在第二個後面執行,而是在 onload 事件被觸發前被調用。
3、動態載入很多 JavaScript 檔案,瀏覽器不保證檔案載入的順序。通過 loadScript()函數載入多個 JavaScript 指令碼可以確保載入順序
loadScript("script1.js", function(){ loadScript("script2.js", function(){ loadScript("script3.js", function(){ alert("All files are loaded!"); }); });});
4、減少 JavaScript 對效能的影響有以下幾種方法:
- 將所有的
<script>標籤放到頁面底部,也就是</body>閉合標籤之前,這能確保在指令碼執行前頁面已經完成了渲染。
- 儘可能地合并指令碼。頁面中的
<script>標籤越少,載入也就越快,響應也越迅速。無論是外鏈指令碼還是內嵌指令碼都是如此。
- 採用無阻塞下載 JavaScript 指令碼的方法:
- 使用
<script>標籤的 defer 屬性(僅適用於 IE 和 Firefox 3.5 以上版本);
- 使用動態建立的
<script>元素來下載並執行代碼;
- 使用 XHR 對象下載 JavaScript 代碼並注入頁面中。
詳細連結:https://www.ibm.com/developerworks/cn/web/1308_caiys_jsload/
【摘要】JavaScript 的效能最佳化:載入和執行