許多 Web 應用程式依賴載入多個腳本和 CSS 檔案來提供增強的功能。但是,同步載入會顯著減慢頁面渲染速度。為了解決這個問題,有幾種非同步載入這些資源的方法。
一種方法是在腳本標籤中使用非同步屬性:
<code class="html"><script async src="js/jquery-ui-1.8.16.custom.min.js"></script></code>
此屬性向瀏覽器發出訊號,表示可以執行腳本而不會阻止其他資源的載入。但是,需要注意的是,如果非同步加載,具有依賴項的腳本仍然可能會導致問題。
在提供的範例中,使用名為 importScripts() 的自訂函數來載入多個非同步腳本和樣式表。然而,程式碼缺乏回調機制來確保頁面互動之前所有資源都已載入。
JQuery 的$.getScript() 方法提供了一個簡潔的方法異步加載腳本的方法:
<code class="js">$.getScript('js/jquery-ui-1.8.16.custom.min.js', successCallback);</code>
此方法自動處理載入腳本的執行,並提供可選的回呼函數。
對於現代在瀏覽器中,Promise 物件可用於建立接受回呼處理程序的非同步載入函數:
<code class="js">function loadScript(src) { return new Promise(function (resolve, reject) { var s; s = document.createElement('script'); s.src = src; s.onload = resolve; s.onerror = reject; document.head.appendChild(s); }); }</code>
此函數允許處理成功和失敗的載入場景。
確保腳本和樣式表以正確的順序載入以避免意外行為非常重要。此外,非同步載入資源不應該是優化頁面效能的主要方法。也應該考慮縮小、壓縮和減少請求數量等技術。
以上是如何透過非同步腳本載入技術提高頁面載入速度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!