HTML中的JavaScript(完结篇,附前三篇)

简介: HTML中的JavaScript(完结篇,附前三篇)

行内代码与外部文件


我们都知道,可以直接在HTML里面写入JavaScript,不过这看起来比较臃肿,所以我们一般都是单独写一个JavaScript的外部文件用于导入进去,为啥要这么做呢


使用外部JavaScript的理由


  • 可维护性

如果我们在HTML里面写入JavaScript,你将会发现如果我们想改动一个页面,上下分析起来会很麻烦因为有时候我们还会牵扯到CSS文件),如果我们都用一个目录来管理我们的JavaScript文件,并且做好命名规范,就会更加容易维护,开发者也能提高开发效率

  • 缓存

我们在前几个系列提高过:浏览器会根据特定的设置缓存所有外部链接的JavaScript文件,这意味着如果两个页面都应用到同一个文件里面,则只需要下载一次,大大加快了页面加载速度

  • 适应未来

如果我们能够把JavaScript放到外部文件中,我们就不用考虑XHTML或前面提到的注释黑科技,包含外部JavaScript文件的语法在HTMLXHTML中是一样的

我们在配置浏览器请求外部文件时,要重点考虑的一点就是占用带宽,在SPDY/HTTP2中,消耗已经显著降低


举个栗子


<script src="demo1.js"></script>
<script src="demo2.js"></script>
<script src="demo3.js"></script>
<script src="demo4.js"></script>

后续页面可能会包含下面的脚本

<script src="demo5.js"></script>
<script src="demo6.js"></script>
<script src="demo7.js"></script>
<script src="demo8.js"></script>

我们在执行初次请求的时候,如果浏览器支持SPDY/HTTP2,我们就可以从同一个地方去的一批文件并将他们逐个放到浏览器缓存中。我们从浏览器的角度来看,通过SPDY/HTTP2获取所有这些独立的资源与获取一个大JavaScript文件的延迟差不多。在第二个页面请求时,由于我们已经把应用程序切割成了轻量可缓存的文件 ,第二个页面也依赖的某些组件此时已经存在于浏览器缓存中了


额外补充


当然,如果我们这里假设浏览器支持SPDY/HTTP2,只有比较新的浏览器才满足,如果还想支持老版本的浏览器,那还是用一个大文件比较合适


文档模式


身世背景


IE5.5发明了文档模式,可以使用doctype切换文档模式,一开始有两种,分为:混杂模式标准模式前者像IE5一样,后者让IE具有兼容标准的行为。虽然这两种模式主要区别只体现在通过CSS渲染的内容方面,但是对JavaScript也有一定的关联影响

在IE初次支持文档模式切换之后,出现了第三种文档模式:准标准模式,这种模式下的浏览器支持很多标准的特性,但是没有标准规定的那么严格,主要区别在于如何对待图片元素周围的空白(在表格中使用图片时最为明显)


混杂模式


混杂模式在所有浏览器中都以省略文档开头的doctype声明作为开关,这种约定不合理! 因为混杂模式在不同浏览器中的差异非常大,不使用 “科技与狠活” 根本就没有浏览器一致性可言

<!-- HTML 4.01 Script -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dcd">
<! -- XHTML 1.0 Script -->
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Script//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dcd">
<!-- HTML5 -->
<!DOCTYPE html>

准标准模式通过过渡性文档类型Transitional)和框架集文档类型Frameset)来触发


<noscript>元素


由于早期的浏览器不支持JavaScript,所以我们需要一个页面优雅降级处理方案,所以,<noscript>应运而生,用于给不支持JavaScript的浏览器提供替代内容,但是现在主流的浏览器都开始支持JavaScript了,不排除仍然有些浏览器不支持JavaScript,所以对它们来说,这个元素仍然有它的用处

<noscript>元素可以包含仍和可以出现在<body>中的HTML元素,<script>除外,在下面两种情况下,浏览器会显示<noscript>中的内容

  • 浏览器不支持脚本
  • 浏览器对脚本的支持被关闭

如果任何一个条件被满足,包含在<noscript>中的内容就会被渲染,否则,浏览器不会渲染<noscript>中的内容

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script defer="defer" src="demo1.js"></script>
    <script defer="defer" src="demo2.js"></script>
</head>
<body>
<noscript>
    <p>This page requires a JavaScript-enabled browser. </p>
</noscript>
</body>
</html>

这个例子是在脚本不可用的时候让浏览器显示一句话,如果浏览器支持脚本,用于永远不会看见这句话


小结


JavaScript是通过<script>元素插入到HTML页面中的,这个元素可以把JavaScript代码嵌入到HTML,跟其它标记混合在一起,也可以用于引入保存在外部文件的JavaScript

  • 要包含外部的JavaScript,咱就得把src属性设置为包含文件的URL,文件跟网页可以在同一台服务器上,也可以位于不同的域
  • 所有的<script>元素都会按照出现顺序依次执行,在不使用deferasync的情况下,代码必须严格按照次序执行
  • 对于不推迟的及哦啊本,浏览器必须完全解释完位于<script>中的代码,然后接着渲染,所以我们通常把<script>元素放到页面末尾,介于主内容之后及</body>标签之前
  • 可以使用defer属性把脚本推迟到文档渲染完毕之后再执行,推迟的脚本原则上按照它们被列出的次序执行
  • 可以使用async属性表示脚本不需要等待,同时也不阻塞文档渲染,即采用异步加载,但是异步加载不能保证按照它们出现的先后次序依次执行
  • 通过使用<noscript>元素,可以指定在浏览器不支持脚本时显示的内容,如果浏览器支持并且开启脚本,则<noscript>元素中的任何内容都不会被渲染
相关文章
|
4月前
|
移动开发 前端开发 JavaScript
征信报告修改器,征信报告生成器,制作软件无痕修改软件【js+html+css】
本项目为信用评分模拟器教学工具,采用HTML5实现,仅供学习参考。核心功能通过JavaScript构建,包含虚拟数据生成、权重分配及信用因素分析(如还款记录、信用使用率等)。
|
4月前
|
存储 自然语言处理 前端开发
抖音快手小红书虚拟评论截图生成器,模拟对话制作工具,html+js+css
这是一款纯前端实现的多平台虚拟评论生成器,支持抖音、快手、小红书风格,适用于产品演示与UI设计。采用Vanilla JS与Flexbox布局,利用IndexedDB存储数据,CSS Variables切换主题。
|
4月前
|
前端开发 JavaScript
个人征信电子版无痕修改, 个人信用报告pdf修改,js+html+css即可实现【仅供学习用途】
本代码展示了一个信用知识学习系统的前端实现,包含评分计算、因素分析和建议生成功能。所有数据均为模拟生成
|
3月前
|
开发框架 JavaScript 前端开发
精选HTML、JavaScript、ASP代码片段集锦
这些代码片段代表了HTML, JavaScript和ASP的基本应用,可被集成到更复杂的项目中。它们注重实用性,并且易于理解,旨在帮助开发者快速开始项目构建或进行学习。尽管ASP不如其他服务器端技术(如Node.js, PHP, Ruby等)现代,但它在遗留系统中仍非常普遍,了解基础仍具有价值。
141 14
|
4月前
|
存储 前端开发 安全
病历单生成器在线制作,病历单生成器app,HTML+CSS+JS恶搞工具
本项目为医疗病历模拟生成器,旨在为医学教学和软件开发测试提供数据支持,严格遵守《医疗机构病历管理规定》。
|
4月前
|
前端开发 容器
处方单图片生成器, 处方单在线制作免费,js+css+html恶搞神器
这是一个电子处方模拟生成系统,使用html2canvas库实现图片导出功能。系统生成的处方单包含多重防伪标识,并明确标注为模拟数据,仅供学习
|
4月前
|
前端开发
个人征信PDF无痕修改软件,个人征信模板可编辑,个人征信报告p图神器【js+html+css仅供学习用途】
这是一款信用知识学习系统,旨在帮助用户了解征信基本概念、信用评分计算原理及信用行为影响。系统通过模拟数据生成信用报告,涵盖还款记录
|
4月前
|
前端开发 JavaScript 容器
制作b超单生成器, 假怀孕b超单图片制作, p图医院证明【css+html+js装逼恶搞神器】
本资源提供一个适合用于熟人之间恶搞的工具,效果逼真,仅供学习参考与娱乐。包含前端技术学习要点:语义化布局、响应式设计、Flexbox、图片自适应
|
4月前
|
前端开发
医院检查单子p图软件,在线制作仿真病历,js+css+html装逼神器
本示例展示如何用HTML/CSS创建医疗信息页面,内容仅供学习参考。页面模拟“阳光医院体检中心”场景,提供预约功能验证(如姓名、手机号、日期)。所有数据仅用于演示

热门文章

最新文章