2-1.JS相关概念

一、CSS和JS在网页中的放置顺序?

待参考文献
1.Where should I put <script> tags in HTML markup?

CSS应放在头部;
一般情况下,JS应放在body结束标签前。

<!--头部引入CSS-->
<head>
  <link rel="stylesheet" href="css/layout.css" type="text/css">
</head>
<!--body闭合标签前引入JS-->
 <script type="text/javascript" src="script.js"></script>
</body>

二、解释白屏和FOUC

参考文献
1.前端基础问题整理-HTML相关

  • 原因:当把css样式放在底部或者使用@import方式引入样式时
  • 影响:
    • 一些浏览器例如Chrome,他的加载和渲染机制是等css全部加载解析完后再渲染展示页面,而这个等待的时间就为白屏。
    • 另一些浏览器例如Firefox,他会在css未加载前先展现页面,等css加载后再重绘一次,这就造成了FOUC (无样式内容闪烁)。

三、async和defer的作用和区别

参考文献
1.async vs defer attributes
2.浏览器环境下JavaScript脚本加载与执行探析之defer与async特性
3.script的defer和async

async:异步下载脚本;下载完成后立即执行,不分脚本的顺序;执行过程还是会阻塞页面解析的;

defer: 设置了defer的脚本下载时不会阻塞页面的解析,而是等到页面解析结束之后再执行。

  • 相同点:
    • 下载都不会阻止html页面解析
    • 对外链js有效
  • 区别:
    • async下载完立即执行,defer在页面解析完成后执行;
    • async可能未按照顺序执行,defer还是按顺序执行;
<script src="script1.js" async></script><!--async-->
<script src="script2.js" defer></script><!--defer->
<script src="script3.js"></script><!--normal-->
async defer and normal attributes
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 简单介绍JavaScript的发展历史 JavaScript因互联网而生,回顾它的历史要从浏览器的历史讲起。 19...
    _Dot912阅读 3,465评论 0 3
  • 参考文献1.Render-Tree Construction, Layout, and Paint1.Render...
    guidetheorient阅读 877评论 0 0
  • 1、CSS和JS在网页中的放置顺序是怎样的? (1)CSS 对于谷歌浏览器和Safari放在head里或body里...
    徐国军_plus阅读 3,311评论 0 0
  • 1. CSS和JS在网页中的放置顺序是怎样的? CSS最好放入header中,即放在网页内容(html标签中包含的...
    熊蛋子17阅读 3,408评论 0 0
  • 1. CSS和JS在网页中的放置顺序是怎样的? css放在head标签内,防止渲染时出现白屏 js放在最后body...
    billa_8f6b阅读 3,666评论 0 0