在Html中引入script脚本可以说是一大创举,它最早被网景公司在Netscape Navigator 2中实现。那么,script你真的会用script标签吗?通常我们说script是网页“动起来”的一个标志,为了更好地控制script脚本的加载时机,html规范规定了script的多个属性:
async
可选属性,用于表示立即开始下载脚本,但不能阻止其他页面动作,如下载资源、等待其他脚本下载。只对外部脚本有效。
charset
可选属性,用于配置src属性指定的代码字符集。基本可以忽略,大多浏览器已经做了兼容。
crossorigin
配置相关请求的CORS设置。默认不开启CORS。可以用来配置文件我爱线报网每日持续更新海量各大内部创业教程请求的凭据标志,默认不包含凭据。可能的值如下:
anonymous:不包含凭据use-credentials:包含凭据defer
表示文档解析和显示完成后再执行脚本,只对外部脚本有效。属于异步加载的一种方式。在IE7及更早版本,对行内script脚本也可以指定这个属性。
integrity
可选。允许对接收的资源和指定的加密签名以验证子资源的完成性。若接收到的资源签名与这个属性指定的签名不匹配,则页面报错,脚本停止执行。这个属性可以确保CDN不会提供恶意内容
src
可选属性,用于指定外部js的网络地址
type
可选属性。类似文件的Mimetype属性,默认为text/javascript,若是需要加载包含我爱线报网每日持续更新海量各大内部创业教程es模块的代码可以指定值为”module’。
nomodule
可选属性,兼容不支持ES6的浏览器,主要是IE11。
对于async、defer以及module,async情况下关于js的下载、解析任务拆分情况如下图:
综上可以总结如下:
defer外部请求js与html异步请求,且defer会在html文档解析完成后再去执行js文件,即为js执行在domcontentload时间触发后再执行Js脚本。async外部请求js时会异步文件,文件请求完成后会中断html的解析去执行js文件,js执行完成后若Html还未解析完成则继续进行html解析。type=”module”的script标签若是未设置as我爱线报网每日持续更新海量各大内部创业教程ync或defer虎山行,则默认使用defer方式进行加载。如上type=”module”的fetch分叉为引入外部js的请求过程。noscript
针对之前不支持js的浏览器的问题,需要一个页面降级处理的方式,其实也就是兼容提示处理。所以,有了noscript标签这样的一个规范,可以用来被使用提示不支持js的浏览器提供的替代内容。现在基本是用于被禁用js的浏览器,可以提示让它开启js支持。
<!DOCTYPE html> <html> <head> <title>示例页面</title> <script src=“example01.js” defer></script> </head> <body> <noscr我爱线报网每日持续更新海量各大内部创业教程ipt>本页面需要浏览器开启js支持</noscript> </body> </html> 给力项目:线报网会员可免费下载 加入会员友情提醒: 请尽量登录购买,防止付款了不发货!
QQ交流群:226333560 站长微信:qgzmt2