你真的会用script吗?noscript又是什么?

你真的会用script吗?noscript又是什么?在Html中引入script脚本可以说是一大创举,它最早被网景公司在Netscape Navigator 2中实现。那么,script你真的会用

大家好,欢迎来到IT知识分享网。

在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的下载、解析任务拆分情况如下图:

你真的会用script吗?noscript又是什么?

综上可以总结如下:

  • defer外部请求js与html异步请求,且defer会在html文档解析完成后再去执行js文件,即为js执行在domcontentload时间触发后再执行Js脚本。
  • async外部请求js时会异步文件,文件请求完成后会中断html的解析去执行js文件,js执行完成后若Html还未解析完成则继续进行html解析。
  • type=”module”的script标签若是未设置async或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>
<noscript>本页面需要浏览器开启js支持</noscript>
</body>
</html>

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/51070.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信