【JavaScript】script标签

Script标签

1. 标签属性

  • charset
  • src
  • type(text/javascript)
  • defer
  • async

2. script特性

  • 阻塞页面:嵌入式javascript代码引入外部文件,都会阻塞页面处理。
  • 外部优先:带src属性的script会忽略嵌入代码,只会下载并执行外部脚本。
  • 允许跨域:src属性可以包含来自外部域的文件(JSONP的本质)。

3. 与页面渲染的关系

  • 浏览器按照script标签的出现顺序对他们依次解析。
  • 传统做法都是将引用外部文件的script标签放在<head>里;但是浏览器在遇到<body>之后才开始呈现内容,所以下载脚本时会页面空白。现在推荐放在body中,配合defer和async,不影响页面呈现。
  • deferasync只能用于外部文件
  • 外部文件的引入分下载阶段执行阶段;只使用script标签的下载和执行都会阻塞页面,defer和async的下载阶段不阻塞渲染,执行阶段阻塞渲染。
  • 同步脚本(script):按顺序,下载和执行都会阻塞页面。
  • 延迟脚本(defer):defer表示脚本在执行时不会影响页面结构,所以脚本立即下载(下载不阻塞页面呈现),但会被延迟到整个页面解析完毕后再执行。
  • 异步脚本(async):立即下载文件,下载不阻塞页面呈现,下载完成后立即执行。

这部分知识推荐看这里,有图有真相,说的非常清楚

4. 平稳退化

使用<noscript>在不支持javascript的浏览器中平稳退化

<body>
<noscript>
	<p>本页面需要浏览器支持JavaScript</p>
</noscript>
</body>
全部评论

相关推荐

04-15 23:42
中山大学 Java
ResourceUtilization:过几天楼主就会捧着一堆offer来问牛友们该怎么选辣
点赞 评论 收藏
分享
叶扰云倾:进度更新,现在阿里云面完3面了,感觉3面答得还行,基本都答上了,自己熟悉的地方也说的比较细致,但感觉面试官有点心不在焉不知道是不是不想要我了,求阿里收留,我直接秒到岗当阿里孝子,学校那边的房子都退租了,下学期都不回学校,全职猛猛实习半年。这种条件还不诱人吗难道 然后现在约到了字节的一面和淘天的复活赛,外加猿辅导。华为笔试完没动静。 美团那边之前投了个base广州的,把我流程卡麻了,应该是不怎么招人,我直接简历挂了,现在进了一个正常的后端流程,还在筛选,不知道还有没有hc。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务