关于在HTML中使用的script标签

本文是《JavaScript高级程序设计》(第三版)中的第二章的我的学习的总结。javascript

在HTML中使用JavaScript

<script>标签

  在HTML5中script主要有如下几个属性:async,defer,charset,src,type,java

  • async(可选):

    关键词:异步脚本,外部文件,当即下载;浏览器

    当标签中包含这个属性时会当即下载脚本(外部文件),只对外部脚本文件有效,下载的同时能够进行页面的其余操做,下载完成后中止解析并执行,执行后继续进行解析,但不能保证执行顺序。  缓存

       <script src="js/index2.js" async="async"></script>   安全

  • defer(可选):

    关键词:延迟脚本,外部文件,延迟加载;异步

    当标签中包含这个属性时,脚本能够再等到页面彻底被解析或显示以后执行,只对外部文件有效,若是同时存在两个带有defer的脚本,因为延迟的缘由,前者将会有限于后者执行。async

     <script src="js/index1.js" defer="defer"></script> 学习

  • charset(可选):

    键词:字符集spa

    大多数浏览器已经忽略它的值了,因此不多有人使用。设计

  • src(可选):

    关键词:外部引用

    表示须要引用的外部文件的地址。

  • type(可选):

    关键词:MIME(脚本语言的内容类型)

    为保证最大限度的浏览器兼容,type的属性值主要时候用的依旧是text/javascript,若是没有写这个属性,其默认值仍然为text/javascript。

 注意:在引用外部文件,标签中不要加入其它JS代码,浏览器在解析时,只会下载src引用的外部脚本文件,表中内嵌入的代码将会被忽略。

 


 <script>标签的位置

  一般,咱们会把带有外部文件的的标签(包括CSS文件,JavaScript文件)的引用放在相同的位置,通常是在<head>标签里面。

  可是在解析过程当中一旦遇到多个JavaScript外部文件,就要等到全部的外部文件加载完成后,页面才能彻底显示,因此一般咱们会把它放在<body>标签里的底部,以下所示:

  

  在上面中提到过<script>中有defer这个属性,可是因为在HTML5中提到过,HTML5会忽略嵌入脚本所设置defer属性,目前只有IE4~IE7还支持defer属性,IE8之后彻底遵循HTML5的标准,因此把<script>放在<body>标签里的底部依旧是最佳选择。

 


 

 引用外部文件的优势

  • 利于维护:把全部的JavaScript的文件放在一块儿,不只能够不触及HTML代码,并且更有利于开发者进行代码的编写和维护。
  • 加速浏览:若是有多个HTML页面引用了同一个JavaScript外部文件,这个文件只会加载一次(缓存),也就是说能够加快页面的加载速度。
  • 安全性:引用外部文件,若是用户查看HTML代码,将不会看到JavaScript的代码,比写在标签内安全性更高一些。

 


 

<noscript>标签

  字面意思,NO-script,没有script,也就是浏览器不支持JavaScript时,<noscript>标签中内容才会被显示,

  • 浏览器不支持脚本;
  • 浏览器支持脚本,可是JavaScript被禁用;

  以上两条符合任何一个,<noscript>标签内的内容都会被显示。

  

  上图页面,给用户了一个信息,当浏览器不支持或禁用JavaScript是才会被显示,不然用户将永远不会看到,而且不会影响页面其余元素的显示。

相关文章
相关标签/搜索