script-1-从零开始的JS

2 篇文章 0 订阅
1 篇文章 0 订阅

进入一个网站后,开始显示下载,并解析资源。

这个过程是从<html>开始,直到</html>,意即从上往下的过程。比方说,一个页面有3个js

<!DOCTYPE html>
<html lang='zh-Cn'>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./first.js"></script>
    <script src="./second.js"></script>
    <script src="./third.js"></script>
</head>
<body>
    Content
</body>
</html>

这种情况下,几个js文件中先完成first.js的下载解析(下载好并执行完),然后再到second.js的下载解析,以此类推。

因为js都还没下载解析好,所以还没能进入显示页面的行为。可能会导致页面显示出来后先是一片空白,用户体验不好。

 

解决方式:

  • 通过async,defer属性,让js立刻开始异步下载。
  • 把js放在上述例子中,body内页面内容的最下方(</body>标签的前面)

第一种:

      js开始异步下载后,就不管了直接进入页面的显示处理。

      async与defer的区别是,前者不能保证标有async的脚本们的执行先后顺序,哪个先下载完就哪个先执行。后者是按照js的声明顺序解析的。

第二种:

      从<html>到</html>的过程中,除去津贴</body>前那一坨script元素外,内容已经显示了,然后才遇到js后开始下载解析js。所以就没妨碍页面显示。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值