饥人谷技术博客

【Javascript】基础概述

2017-08-22  本文已影响0人  NinthG

JavaScript语言的历史


浏览器的渲染机制

以图为例

浏览器渲染机制

CSS、JS 在 HTML 中的放置

浏览器的解析方式

浏览器解析html页面首先浏览器先下载html,然后在内存中把html代码转化成Dom Tree,
然后浏览器根据Dom Tree上的Node分析css和Images,当文档下载遇到js时,js独立下载。

CSS和JS的加载机制

js是阻塞加载,会影响页面加载的速度,如果js文件比较大,算法也比较复杂的话,影响更大。
CSS放在前端是页面渲染时首先是根据DOM结构生成一个DOM树然后加上CSS样式生成一个渲染树,如果CSS放在后面可能页面会出现闪跳的感觉,
或者是白屏或者布局混乱样式很丑直到CSS加载完成。

一般的解决方法

  1. 用defer标签
  2. 用createElement来动态生成,但是这样有一个问题就是加载顺序在IE下不一定会是按代码写的顺序来加载,可能会影响到依赖项,有些文件就是必须在另一个文件前引用。火狐跟opera是按顺序加载的
  3. 用ajax加载,也是非阻塞似的但是这种方法不支持CDN

最优放置方法

把必须的js和css放顶部,把不那么重要的css和js放底部。


白屏和 FOUC


repaint&reflow

概念参考

触发reflow的一些操作

改进方式

除了期待浏览器机制的迭代改进之外,还有一些点是在平常工作中需要注意的


异步加载脚本

在通过<script src="#"></script>引入JS脚本时,如果没有特殊的标签属性,那么浏览器解析到这里的时候会立即执行该脚本(“立即”指的是在渲染该 script 标签之下的文档元素之前,也就是说不等待后续载入的文档元素,读到就加载并执行。)
有两个标签属性可以控制异步加载脚本

参考文章

上一篇下一篇

猜你喜欢

热点阅读