理解一下HTML中的script标签
轻微学习过一点网页编写的同学都知道,网页中的js代码应当写在 script 标签中,但是为什么要这么做呢?本文就介绍一下script标签。
script 标签
最初,网景公司想要在阅读器中展现使用js的html文件,但是又不想影响这个文件在其他阅读器中的显示结果,于是制造了 script 标签
我们都知道标签可以在里面增加属性,script标签有下面的属性:
- async 表示马上下载该足本,不该该阻碍界面中其他操纵
- src 表示要施行这个足本的外部文件,可选
- charset src指定的外部文件的字符集
- defer 足本延迟到文档解析显示完成之后施行,可选
- language 已经废弃
- type 重要,用于替换language属性,默许为text/javascript,所以这个参数一样不需要可以指定。
<script type="text/javascript"> // 属性设定 function SayHi(){ alert("Hi"); } </script>
<!-- 留意下面的写法 /> 这么写本身没有问题,但是不克不及在html中使用这种语法,由于这样会打乱html的解析 --> <script type="text/javascript" src="2.js"/> // 必需写成下面的模样 <script type="text/javascript" src="2.js"></script>
留意:
- 在说明器对script标签中的代码求值完毕此前,页面中的其余内容都不会被阅读器加载或者显示
- 带有src的标签中假如还有js代码将被忽略,所以写了src就不该在其中再写代码了
- 尽量使用外部文件写js,尽量少的使用内嵌js,这样一来保护利便,js都在一个地方,而来假如两个页面使用了统一个js,它可以缓存
script 标签位置
原本标签应当放在header里面,但是由于放在header中,在加载js的时候,页面还不会渲染(页面只要加载到body才会开端渲染),致使页面显现较长时间的白,所以此刻我们放在body的最后
<body> ... <script src="1.js"></script> <script src="2.js"></script> <script src="3.js"></script> </body>
在script中参加defer属性之后,放到header中理论上也可以到达延迟施行的目的,但是由于不一样阅读器关于defer的支撑不一样(施行次序不肯定,内嵌的js不支撑defer等),最好我们还是依照上面的写法写在body的最后。
async属性也是为理解决足本异步加载的问题,一样也是不支撑嵌入的js足本,原本它跟defer的不同是 defer 按次序加载,async不按次序加载,但是在实际使用中,阅读器关于这个属性的支撑也不一样,两个属性都不克不及包管足本的次序施行乃至在DOMContentLoaded此前施行,所以在阅读器彻底支撑此前,最好还是不要用这个属性了。
标签
当阅读器禁用js或者阅读器基本不支撑js(当然此刻这种很少了),需要平稳退化,所以需要noscript标签
它的作用是,当发生上面提到的状况的时候,显示noscript中的内容,看下面的例子
<html> <head> <script src="2.js"></script> </head> <body> <noscript> <p>本页面需要阅读器支撑(启用)JavaScript</p> </noscript> </body> </html>
留意假如阅读器启用了JS,则这个标签里的内容不会显示。
引荐教程:HTML教程、JavaScript视频教程
以上就是理解一下HTML中的script标签的具体内容,更多请关注百分百源码网其它相关文章!