精品熟人妻一区二区三区四区不卡-精品爽黄69天堂a-精品水蜜桃久久久久久久-精品丝袜国产自在线拍-精品丝袜国产自在线拍a-精品丝袜国产自在线拍免费看

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

HTML中最熟悉的陌生人:<script>標(biāo)簽必知必會(huì)

freeflydom
2025年4月12日 9:24 本文熱度 374

<script>標(biāo)簽用于在HTML中引入js,本文主要討論三方面:

  1. script標(biāo)簽在不同位置引入的區(qū)別(如在head引入和在body引入,在body開(kāi)頭與最后引入)
  2. script標(biāo)簽的三種引入方式(default,async,defer),
  3. script標(biāo)簽?zāi)K化(type='module')

加載與執(zhí)行的區(qū)別

腳本的加載(Loading)與執(zhí)行(Execution)是兩個(gè)獨(dú)立的概念,它們的行為和影響因素不同,理解這一點(diǎn)對(duì)我們后面的討論至關(guān)重要.

  • 加載: 瀏覽器從服務(wù)器獲取腳本文件(如 script.js)的過(guò)程,涉及網(wǎng)絡(luò)請(qǐng)求和資源下載。
  • 執(zhí)行: 瀏覽器解析并運(yùn)行腳本中的 JavaScript 代碼。

引入位置區(qū)別

<head> 中引入或在<body>最開(kāi)始引入

  • 瀏覽器會(huì)暫停 HTML 解析,立即加載并執(zhí)行腳本,執(zhí)行完成后才繼續(xù)解析 DOM。

  • 若腳本體積大或網(wǎng)絡(luò)慢,會(huì)導(dǎo)致頁(yè)面渲染阻塞(白屏?xí)r間長(zhǎng))。

  • 如果腳本嘗試操作 DOM(如 document.getElementById),可能因?yàn)?DOM 還未解析而找不到元素,導(dǎo)致錯(cuò)誤。

  • 適用場(chǎng)景

    • 需要盡早執(zhí)行不依賴 DOM 的腳本(如某些性能監(jiān)控、日志上報(bào)代碼)。
    • 一般不推薦,除非有特殊需求。

<body> 底部引入:

  • 不阻塞 DOM 解析,瀏覽器會(huì)先解析完整的 HTML,最后再加載和執(zhí)行腳本,不會(huì)影響頁(yè)面渲染速度。用戶能更快看到頁(yè)面內(nèi)容(減少 FCP,F(xiàn)irst Contentful Paint)。

  • 腳本執(zhí)行時(shí) DOM 已就緒,腳本運(yùn)行時(shí),整個(gè) DOM 已經(jīng)解析完成,可以安全操作 DOM 元素,無(wú)需等待 DOMContentLoaded 事件。

  • 適用場(chǎng)景

    • 推薦的經(jīng)典做法,適用于大多數(shù)情況,特別是依賴 DOM 的腳本(如交互邏輯、初始化組件)。
    • 如果腳本較大,仍可能影響 DOMContentLoaded 事件觸發(fā)時(shí)間。

三種引入

默認(rèn)引入

遵循多個(gè)腳本按書(shū)寫順序依次加載并執(zhí)行的原則。

defer

<script src="script.js" defer></script>
  • 行為

    • 腳本異步加載(不阻塞 HTML 解析),但會(huì)延遲到 DOM 解析完成后、DOMContentLoaded 事件前按順序執(zhí)行。
    • 適用于需要操作 DOM 或依賴其他腳本的場(chǎng)景。
  • 特點(diǎn)

    • 保證腳本的執(zhí)行順序(與書(shū)寫順序一致)。
    • 天然支持“等 DOM 就緒”,類似 DOMContentLoaded

async

<script src="script.js" async></script>
  • 行為

    • 腳本異步加載(不阻塞 HTML 解析),加載完成后立即執(zhí)行(可能中斷 HTML 解析)。
    • 適用于獨(dú)立腳本(如統(tǒng)計(jì)代碼、第三方 SDK)。
  • 特點(diǎn)

    • 不保證執(zhí)行順序(誰(shuí)先加載完誰(shuí)先執(zhí)行)。
    • 不適合操作 DOM 的腳本(可能 DOM 還未解析完)。

模塊化type="module"

<script type="module" src="module.js"></script>
  • 場(chǎng)景

    • 你的代碼需要按模塊化拆分,通過(guò) import 引入其他模塊或通過(guò) export 暴露功能。

      <script type="module">
        import { utils } from './utils.js';
        import Component from './Component.js';
      </script>
      
  • 行為

    • 避免全局變量污染,依賴關(guān)系清晰,適合大型項(xiàng)目。
    • 默認(rèn)具有 defer 行為(異步加載,DOM 解析后執(zhí)行)。
    • 若顯式添加 async(如 <script type="module" async>),則行為類似 async
  • 特點(diǎn)

    • 支持 ES6 模塊語(yǔ)法(import/export)。
    • 自動(dòng)啟用嚴(yán)格模式。
    • 模塊腳本默認(rèn)延遲執(zhí)行,且按依賴關(guān)系順序執(zhí)行

?轉(zhuǎn)自https://juejin.cn/post/7491601352746680383


該文章在 2025/4/12 9:24:04 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 日本三级韩国三级香港三级a级 | 欧美97色伦欧美一区二区日韩 | 日韩免费无码视频一区二区三 | 精品高清无码无遮挡网视频 | 伊人亚洲综合 | 亚洲国产日韩欧美综合字幕 | 国产高清乱码一区二区三区 | 免费无码v片在线观看中文 免费无码成人av在线播放不卡 | 色一情一乱一乱一区91av | 国产欧美亚| 色婷婷狠狠18禁久久yy | 中文字幕av无码 | 欧洲性久久精品 | 国产午夜精品理伦片 | 午夜视频在线观看免费 | 国内自拍亚洲系列欧美系列 | 亚洲性日韩精品一区二区 | av春色在线观看 | 敌伦交换一区二区三区流畅不卡顿 | 国产av无码专区亚洲av果冻传媒 | 日本一区中 | 国产jk白丝视频在线观看 | 办公室爆乳在线 | 99er热精品视频 | 熟女大屁股白浆一区二区 | 亚洲国产精久久久久久久 | 中文字幕在线亚洲精品 | 国产精品丝袜一区二区三区 | 一区二区三区欧美视频 | 国产v片在线播放免费观 | 亚洲精品麻豆视频 | 精品香蕉在线视频专区 | h漫一区二区三区在线观看 h无码动漫超w网站 h无码动漫在线观看不卡 | 91精品国产自产91精品 | 欧美日韩精品视频一区二区在线观看 | 91啪在线观看国产在线 | 日本人hdxxxx | 成人性色生活片免费看爆迷你毛片 | www.1515国产一二三区 | 99精品国产兔费观看久久 | 精品人妻系列无码人妻 |