注册 登录

清河洛

使用JavaScript

qingheluo2016-12-16清河洛361
使用JavaScript <Script>标签:<script>xxx</script>这组标签,是用于在html页面中插入js的主要方法。主要有以下几个属性:1.charset:可选。表示通过src属性指定的字符集。由于大多数浏览器忽略它,所以很少有人用它。2.defer:可选的单属性。表示渲染完再执行的异步加载3.async:可选的单属性。表示下载完就执行的异步加载4.language:已废弃。是W3C的HTML标准,大多数浏览器忽略它5.src:可选。表示包含要执行代码的外部文件。6.type:可选。可以看作是language的替代品。表示代码使...

使用JavaScript <Script>标签:

<script>xxx</script>这组标签,是用于在html页面中插入js的主要方法。主要有以下几个属性:

1.charset:可选。表示通过src属性指定的字符集。由于大多数浏览器忽略它,所以很少有人用它。

2.defer:可选的单属性。表示渲染完再执行的异步加载

3.async:可选的单属性。表示下载完就执行的异步加载

4.language:已废弃。是W3C的HTML标准,大多数浏览器忽略它

5.src:可选。表示包含要执行代码的外部文件。

6.type:可选。可以看作是language的替代品。表示代码使用的脚本语言的内容类型

"text/javascript":通用的值,兼容性最好
"application/javascript":较新的浏览器支持,IE8之前不支持
在HTML5标准中该属性无需指定,默认为"text/ecmascript"

JS代码嵌入的一些问题

1、通过src引入,标签内没有任何JS代码。虽然没有任何代码,也不能用单标签: <script type="text/javascript" src="demo.js" />,这个是错误的。也不能在里面添加任何代码: <script type="text/javascript" src="demo.js">alert('这句话不会执行');</script>

2、平稳退化不支持JavaScript处理: <noscript>您没有启用JavaScript</noscript>,在不支持或者禁用javascript的浏览器中会显示标签中的内容,否则不会显示标签中的内容。

script标签中的async和defer异步加载

正常情况下浏览器解析html是从上到下解析

当遇到script标签时,会向src属性提供的地址发出请求,并等待返回,待返回后立即运行js代码,运行完毕后再向下解析,整个过程是阻塞的

当使用了async属性时

<script src="https://www.aa.com/demo.js" async></script>

此时浏览器在解析过程中遇到该标签时,向src属性提供的地址发出请求后并不会阻塞的等待返回,而是向下继续解析html代码,当js返回后暂停解析html代码,运行返回的js代码,运行完毕后继续刚才暂停的位置向下解析html

如果有多个async脚本,是不能保证加载顺序的,哪个先下载完成先加载哪个

当使用了defer属性时

<script src="https://www.aa.com/demo.js" defer></script>

此时浏览器在解析过程中遇到该标签时,向src属性提供的地址发出请求后并不会阻塞的等待返回,而是向下继续解析html代码,当js返回后也不会暂停解析html代码,而是在html解析完毕,即将触发DOMContentLoaded事件的时候运行返回的js代码

如果有多个defer脚本,会按照它们在页面出现的顺序加载



网址导航