欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

Script的async和defer

freeflydom
2024年4月26日 12:31 本文熱度 705

介紹async 和 defer的使用

在HTML中,<script>標簽用于嵌入或引用JavaScript代碼。asyncdefer都是<script>標簽的屬性,用于改變腳本的加載和執行方式,以優化頁面加載性能。

async屬性

  • 定義async屬性表示異步地加載腳本。當瀏覽器遇到帶有async屬性的<script>標簽時,它會并行下載腳本,而不阻塞HTML文檔的解析。

  • 行為:當腳本下載完成后,瀏覽器會暫停文檔的解析,執行這個腳本,然后再繼續HTML文檔的解析。

  • 使用場景:適用于那些與頁面其余部分相互獨立的腳本,比如廣告加載和數據追蹤腳本。因為async腳本不保證按照指定的順序執行,所以不適用于相互依賴的腳本。

defer屬性

  • 定義defer屬性表示在文檔解析和顯示完成后,再延遲執行腳本。

  • 行為:帶有defer屬性的腳本將被并行下載,但不會阻斷文檔的解析。這些腳本直到整個頁面都解析完成后,才會按照它們在文檔中出現的順序執行。

  • 使用場景:適用于那些需要等待DOM樹構建完成后才能執行的腳本,比如操作DOM的腳本。defer腳本保證了執行順序,適用于有依賴關系的腳本。

async與defer的區別

  • 執行時間async腳本在下載完成后立即執行,這可能會在文檔解析過程中發生;而defer腳本則要等到文檔解析完成后,才會按順序執行。

  • 執行順序:多個async腳本不能保證按照它們在HTML文檔中的順序執行,而多個defer腳本則總是會按照它們在文檔中出現的順序依次執行。

使用示例

<!-- 異步加載腳本,不保證執行順序 -->

<script async src="script1.js"></script>

<script async src="script2.js"></script>


<!-- 延遲執行腳本,保證按照出現順序執行 -->

<script defer src="script1.js"></script>

<script defer src="script2.js"></script>


在實際開發中,根據腳本的功能和依賴關系選擇使用asyncdefer,可以在不阻塞頁面渲染的同時,優化用戶體驗。

如果用JS創建的script標簽,想創建一個async的script,應該怎么寫呢?

在JavaScript中動態創建并插入一個具有async屬性的<script>標簽,可以按照以下步驟進行:

  1. 使用document.createElement()方法創建一個新的<script>元素。

  2. 設置這個新創建的<script>元素的src屬性,指定需要加載的腳本URL。

  3. 設置async屬性為true,使其異步加載。

  4. 將這個<script>元素添加到文檔中,通常是添加到<head><body>元素中。

以下是具體的代碼示例:

// 創建一個新的script元素

var script = document.createElement('script');


// 設置script元素的src屬性

script.src = 'https://example.com/some-script.js';


// 將async屬性設置為true

script.async = true;


// 將script元素添加到文檔的<head>部分

document.head.appendChild(script);

這段代碼將創建一個新的<script>元素,將其src屬性設置為指定的腳本URL,并通過設置async屬性為true來實現異步加載。最后,這個<script>元素被添加到文檔的<head>部分,從而開始異步加載并執行指定的JavaScript文件。

通過這種方式動態添加的<script>標簽,其行為與在HTML中直接使用<script async src="...">標簽相同,即不會阻塞頁面的解析和渲染,提高了頁面加載的性能。


作者:Struggle_zhu
鏈接:https://juejin.cn/post/7362080157191651354
來源:稀土掘金
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。



該文章在 2024/4/28 10:25:37 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved