我爱编程

JS相关概念(进阶1)

2017-01-24  本文已影响0人  饥人谷_js_chen

1. CSS和JS在网页中的放置顺序是怎样的?

<link href="index.css" rel="stylesheet">
<script src="index.js"></script>

2. 解释白屏和FOUC

  1. 白屏问题:
    - 对于grome等浏览器,把样式放在底部或使用@import。此时,若加载大量html标签、文字和图片,但样式并没有即使加载,则可能出现白屏;
    - 将js放在顶部。因为普通情况下(除非加了async或defer),加载javascript时,会禁用并发,阻止了其他内容的下载。所以js放在顶部可能会出现白屏;

  2. FOUC:
    对于火狐等浏览器,把样式放在底部,会出现FOUC(逐步加载无样式的内容,等css加载后页面突然展现样式)

  3. 解决方法:

    • css:放到顶部
    • js:放到底部

3. async和defer的作用是什么?有什么区别

  1. async:让script.js和其他元素异步加载和执行
  2. defer:让script.js的执行再所有元素解析完成之后
  3. 区别:
    • defer使得js脚本延迟到文档解析和显示后执行,有顺序;
    • async不保证顺序,可以与文档加载或显示同时执行

4. 简述网页的渲染机制

  1. Grome等浏览器:


    • 解析 HTML 标签到Content Sink
    • 这时,先加载Content Sink里面的内容,页面上会显示一个无样式的内容
    • 循环加载css样式,每次加载一部分css样式后,都会重现渲染页面

5. 从上面4个题目中随机选择一题写成博客,投递到饥人谷技术博客6 (可选题目)

博客

上一篇下一篇

猜你喜欢

热点阅读