【摘要】JavaScript 的效能最佳化:載入和執行

來源:互聯網
上載者:User

標籤: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 的效能最佳化:載入和執行

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.