Javascript学习笔记2——在html中使用js

本文深入探讨了HTML中script标签的async与defer属性的作用,解释了它们如何影响外部js文件的加载顺序与执行时机。同时阐述了使用外部js文件的可维护性和缓存优势,以及noscript元素在脚本禁用情况下的应用。通过对比async与defer的异同,为开发者提供更优的js脚本加载策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<script></script>元素的属性:

async:表示立即下载脚本,但是不妨碍其他的操作,但是只使用于外部js文件。

defer:表示等到脚本延迟到文档全部被解析或者显示之后再执行,只使用于外部js文件。

src:表示外部文件的源地址

text:一般都是用text/javascript,因为她是约定俗成的同时兼容性更高。不过服务器传送js的时候一般都是使用application/x-javascript.。也可以忽略该属性,因为默认是text./Javascript。


无论怎么包含代码,只要没有defer 和async属性,程序就会自动的按照顺序进行加载。第一个script执行完然后执行第二个第三个。


script标签一般在head中。所以程序加载的时候必须加载完head中的script才去加载body中的内容。对于一些网页可能造成加载延时的状况。针对这种情况,一般吧外部引用的js文件放到body的最下面,这样就可以大大缩短js加载延时造成的浏览器一直处于空白等待状态。

延迟脚本:可以加上defer属性,告诉浏览器立即下载外部js文件(只能用在外部js文件上),延迟执行。其中包含的脚本等到网页加载到</html>的时候才去执行。


异步脚本:与延迟甲苯defer类似,只不过async脚本不能确定所异步的脚本的执行顺序。

例如:

<script text="text/javascript" src="example1.js" async />

<script text="text/javascript" src="example2.js" async />

这两个js文件执行的顺序不确定,如果是defer属性的话就是按照顺序先执行example1然后再是2文件。


一般使用外部的js文件,因为可维护性高,并且可以根据浏览器设置缓存相应的js文件


<noscript></noscript>元素:在浏览器不支持脚本或者脚本被禁用的情况下,该元素可以设置相应的提示信息。除此之外的情况浏览器都不显示noscript元素。





(2016年7月11日修改内容)

async与defer的区别和相同点:

1,二者都是异步下载编译,在html加载编译的同时,也对该二者属性的外部js文件进行下载和编译。

2,不同点在与,defer在html加载和编译只会才会去执行,并且外部js执行的顺序是按文档中的顺序执行的。但是async是谁先加载完就执行,不管html加载是否完成。

笔者认为最好用defer比较保险。


外部js文件引入的优点:

可维护性,方便后期对js进行修改,而无需修改页面。

可缓存,浏览器自动的对外部js文件进行缓存,如果两个页面引用同一个js文件,只需要下载一次就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值