红宝石 -- 第二章(复习)

2.1 <script>元素

在解释器对<script>元素内部的所有代码求值完毕之前,页面中的剩余内容都不会被浏览器加载或显示。同时在解析外部JavaScript文件时页面的处理也会暂时停止。
无论如何包含代码,只要不存在defer和async属性,浏览器都会按照<script/>元素在页面中出现的先后顺序对他们依次进行解析

2.1.1 标签的位置

在文档的<head>元素中包含所有的js文件,这就意味着必须等到所有的js代码都被下载,解析和执行完成之后,才开始呈现页面的内容(浏览器在遇到<body>标签之后才开始呈现内容)。对于需要很多js代码的页面来说就会出现明显的延迟。因此通常将其因在<body>标签中。

<!DOCTYPE html>
<html>
	<head>
		<title>标签位置<title/>
	<head/>
	<body>
		<!--这里放内容-->
		<script src="xxx"><script>
	<body/>
<html/>

2.1.2 延迟脚本

<script>标签中定义了defer属性,脚本会被延迟到整个页面都解析完成后再运行,相当于告诉浏览器立即下载,但不执行
这个脚本将会延迟到浏览器遇到<html>标签后再执行。同时第一个延迟脚本会优先于第二个延迟脚本执行。

<!DOCTYPE html>
<html>
	<head>
		<title>延迟脚本<title/>
		<script defer="defer" src="第一个脚本"><script>
		<script defer="defer" src="第二个脚本"><script>
	<head/>
	<body>
		xxx内容
	<body/>
<html/>

2.1.3 异步脚本

同样与defer类似,async只适用于外部脚本文件
<script>标签中定义了async属性,相当于告诉浏览器立即下载,但不执行
标记为async的的脚本并不能保证按照他们的先后顺序执行。

2.2 嵌入代码与外部文件

通常使用外部文件会有以下优点:
可维护性强可缓存(浏览器可以根据具体的设置缓存链接的所有外部js文件,也就是说有两个页面都使用一个文件,那么这个文件只需下载一次,进而提高页面加载的速度),适应未来

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值