【常见问题01】HTML文档引用外部js文件失效问题

一:前置基础:

1、JS脚本三种编写位置

(1)在script元素定义,其间的脚本代码在文档加载后顺序执行,并且执行一次。

(2)脚本代码可以定义在内建事件属性值中,当该事件被触发,就会执行属性值中的脚本代码。eg:

<button onclick = "javascript:所运行的Javascript语句"/>

(3)脚本代码可以位于一个独立的以.js为扩展名的源文件中。

2、脚本代码位置问题:

(1)script脚本代码可以在文档中包含一段脚本代码,该元素可以在HTML文档中出现任意次数,而且,该元素可以位于head元素或body元素内。

3、html文档的解析规则:

1html字符串被浏览器接收后一句一句读取并解析
2如果解析到link标签,便发送请求获取css;
3解析到script标签,发送请求获取js后并执行相应的代码
4解析到img后会请求图片资源
5在解析html过程中构建dom树,解析css等过程中构建渲染树,递归布局后进行页面绘制

从上到下进行解析。


二、HTML文档引用js失效问题

1、详解

HTML文档解析是从上到下进行,就会出现CSS和JS解析顺序问题

CSS不阻塞DOM的加载和解析(它只阻塞DOM的渲染呈现。这里谈加载),不会阻塞其它资源的加载(比如图片),但是会阻塞 后续JS 文件的执行(原因之一是,js执行代码可能会依赖到css样式。css只阻塞执行而不阻塞js的加载)。
鉴于上面的特性,当css后面存在js的时候,css会间接地阻塞js后面资源的加载(css阻塞js,js阻塞dom)。因此将脚本文件放到 body 底部(但还是在</body>之前)就可以起到很不错的优化效(遵循先解析再渲染再执行script这个顺序)。可以将js文件或script元素的脚本代码放置在head中,但为了避免不必要的解析错误,直接将其放置在body尾部即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值