第二章
JAvascript是通过script元素插入到HTML页面中。这个元素可用于把javascript代码嵌入到HTMl中,跟其他标记混合在一起。也可用于引入外部代码文件。
(1)要包含外部的javascript文件,必须将src设置为要包含的文件的URL,文件可跟网页在同一台服务器上,也可以位于完全不同的域。
(2)所有的script元素会依照他们在网页中出现的次序被解释。在不使用defer和async属性的情况下,包含在script元素中的代码必须严格按次序解释。
(3)对不推迟执行的脚本,浏览器必须解释完位于script元素中的代码,然后才能继续渲染页面的剩余部分,为此,通常应该把script元素放到页面末尾,介于主内容之后及body结束标签之前。
(4)可以使用defer属性把脚本推迟到文档渲染完毕之后再执行。推迟的脚本原则上按照他们被列出的次序执行。
(5)可以使用ansync属性表示脚本不需要等待其他脚本,同事哦也不阻塞文档渲染。即异步加载,异步脚本不能保证按照他们在页面中出现的的次序执行。
(6)通过noscript元素,可以指定在浏览器不支持脚本时显示的内容。如果浏览器支持并启用脚本,则noscript元素中的任何内容都不会被渲染。
(7)script属性
async:可选。表示应该立即开始下载脚本,但不能阻止其他页面动作,
比如下载资源或等待其他脚本加载。只对外部脚本文件有效。
charset:可选。使用src属性指定的代码字符集。这个属性很少使用,
因为大多数浏览器不在乎他的值。
crossorigin:可选。配置相关请求的CORS(跨资源共享)设置。
crossorigin="anonymous"配置文件请求不必设置凭据标志。
crossorigin="use-credentials"设置凭据标志,
意味着出战请求会包含凭据。默认不使用CORS
defer:可选。表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本文件有效。
integity:可选。允许接收到的资源的签名接指定的加密签名以验证子资源完整性
(SRI,Subresource INtegrity)。
如果接收到的资源的签名与这个属性指定的签名不匹配,则页面会报错。
脚本不执行。这个属性可以用于确保内容分发网络,不会提供恶意内容。
language:废弃。用于表示代码块中的脚本语言。
src:可选。表示包含要执行的外部文件。
type:代替language,表示代码块中脚本语言的内容类型。
(8)在使用行内javascript代码时,不能出现字符串
</script>
会被浏览器结束标签,解决编发
<\/script>
加上转义符""即可!
(9)按照惯例,外部脚本文件扩展名是.js。这不是必须得以为浏览器不会检查所含javascript的扩展名。这就问使用服务器端脚本语言动态生成javascript代码,或者在浏览器中javascript扩展语言(如Typescript,或React的JSX)转移为javascript提供了可能性。不过要注意,服务器会根据文件扩展来确定响应正确的MIME类型。如果不打算使用.js扩展名。一定要确保服务器能返回正确的MIME类型。
(10)行内代码与外部文件:推荐外部文件。可维护性搞,缓存,防止黑科技,适应未来。