news 2026/7/11 1:53:55

JavaScript引入方式介绍

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
JavaScript引入方式介绍

文章目录

  • 1. 内联导入(Inline Scripting)
  • 2. 外联导入(External Scripting)
  • 3. HTML5 中的“高级形态”:模块导入(type="module")
    • 外联模块
    • 内联模块(这在 HTML5 中是允许的!)

1. 内联导入(Inline Scripting)

定义:将 JavaScript 代码直接作为

<script>console.log('这是内联代码');var config={api:'/api/user'};</script>

HTML5 执行机制:
1、阻塞式解析:浏览器遇到内联脚本时,会立即暂停 HTML 文档的解析,执行完脚本内容后,再继续向下渲染。这意味着如果脚本耗时过长,用户会看到页面“白屏”。
2、作用域:默认运行在全局作用域(window)下,多个内联脚本之间可以互相访问变量(容易造成全局污染)。

核心优劣势:
✅ 零延迟:无需网络请求,即刻执行。
✅ 后端数据注入:非常适合服务端渲染(SSR)时,将后端数据直接塞给前端
(window.INITIAL_STATE= {…})。
❌ 无法缓存:代码随 HTML 一同下载,每次页面刷新都会重新下载,不会存入浏览器缓存。
❌ 无法复用:代码无法被其他页面共享。

HTML5 中的限制:内联脚本不支持 async 和 defer 属性(浏览器会忽略它们),因为代码就在当前文档流中,没有“异步下载”的概念。

2. 外联导入(External Scripting)

定义:将 JavaScript 代码保存在独立的 .js 文件中,通过 <script> 标签的 src 属性引入外部文件路径。
标准语法:

<!-- 基础外联(默认行为) --><scriptsrc="/js/app.js"></script>

HTML5 的执行机制(这里是重点):
外联脚本默认行为与内联一致(阻塞解析),但 HTML5 提供了两个关键属性来彻底改变加载行为:

<!-- 推荐用于现代业务逻辑:不阻塞渲染,按顺序执行 --><script defersrc="/js/main.js"></script><!-- 推荐用于第三方统计:不阻塞渲染,独立无依赖 --><script asyncsrc="https://www.google-analytics.com/analytics.js"></script>

核心优劣势:
0
✅ 可利用浏览器缓存:文件单独存储,二次加载时直接从磁盘读取,速度极快。
✅ 结构与行为分离:符合 Web 标准最佳实践,利于团队协作和维护。
❌ 增加 HTTP 请求(现代 HTTP/2 多路复用下影响不大)。

3. HTML5 中的“高级形态”:模块导入(type=“module”)

在 HTML5 中,还有一种特殊的混合形态,它结合了“内联/外联”与 ES Module 语法。既然你提到“导入”,这点必须单独拎出来讲,以防混淆。

外联模块

<scripttype="module"src="/js/app.js"></script>

此写法相当于自动开启了 defer(不阻塞渲染,按顺序执行)。

文件内部支持 import 语法,可以引用其他依赖。

内联模块(这在 HTML5 中是允许的!)

<scripttype="module">// 虽然是内联写法,但这里可以使用import远程拉取依赖!import{cloneDeep}from'https://cdn.jsdelivr.net/npm/lodash-es@4.17.21/lodash.min.js';console.log(cloneDeep({a:1}));</script>

注意:内联模块默认开启了严格模式,拥有独立作用域(变量不会挂载到 window 上),且支持顶级 await。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/11 1:53:37

LangChain框架深度解析:LLM时代的可编程运行时环境

1. LangChain 框架&#xff1a;不是“又一个Python库”&#xff0c;而是LLM时代的操作系统内核我第一次在2023年6月把LangChain跑通时&#xff0c;心里想的不是“哦&#xff0c;又一个调大模型的工具”&#xff0c;而是“这玩意儿&#xff0c;像极了当年刚接触Linux内核模块时的…

作者头像 李华
网站建设 2026/7/11 1:53:20

工业负载控制:TPD2017FN与TM4C129LNCZAD的高可靠性方案

1. 工业负载控制方案概述在工业自动化领域&#xff0c;精确控制电感和电阻负载是电机驱动、继电器控制和电力电子系统的核心需求。TPD2017FN智能高侧开关与TM4C129LNCZAD微控制器的组合&#xff0c;为工业环境中的感性/阻性负载提供了高可靠性的解决方案。这套方案特别适用于需…

作者头像 李华
网站建设 2026/7/11 1:52:17

SPSS AMOS 28 结构方程模型:从问卷信效度到模型适配的 7 步完整流程

SPSS AMOS 28 结构方程模型&#xff1a;从问卷信效度到模型适配的 7 步完整流程结构方程模型&#xff08;SEM&#xff09;已成为社会科学和商科研究中不可或缺的分析工具。对于刚接触SEM的研究者来说&#xff0c;从数据准备到最终模型适配的完整流程往往令人望而生畏。本文将基…

作者头像 李华
网站建设 2026/7/11 1:50:25

Unlock-Music音乐解锁工具:打破平台枷锁,重获音乐自由

Unlock-Music音乐解锁工具&#xff1a;打破平台枷锁&#xff0c;重获音乐自由 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库&#xff1a; 1. https://github.com/unlock-music/unlock-music &#xff1b;2. https://git.unlock-music.dev/um/web 项目…

作者头像 李华
网站建设 2026/7/11 1:48:57

AiPy、LangChain与AutoGPT智能体选型实战指南

1. 这不是选工具&#xff0c;是选“智能体操作系统”&#xff1a;一场真实开发者的硬核拆解你刷到这个标题时&#xff0c;大概率正站在一个十字路口&#xff1a;刚学完Python基础&#xff0c;想搭个能自动查资料、写周报、甚至帮孩子改英语作文的AI小助手&#xff1b;或者你已经…

作者头像 李华
网站建设 2026/7/11 1:48:03

DHT11 温湿度传感器 3 种主流库对比:Adafruit vs markruys vs DFRobot 实测

DHT11温湿度传感器三大Arduino库深度评测&#xff1a;性能、兼容性与实战技巧1. 为什么需要评测DHT11库&#xff1f;在物联网和智能家居项目中&#xff0c;温湿度监测是最基础也最常用的功能之一。DHT11作为入门级数字温湿度传感器&#xff0c;因其价格低廉、接口简单而广受欢迎…

作者头像 李华