什么是重绘与回流,页面渲染是重绘还是回流?

回流何时发生:

回流必将引起重绘,而重绘不一定会引起回流。

1. 当Render tree中的一部分(或全部)因为元素的规模尺寸,布局,隐藏等改变而需要重新构建。这就称为回流(其实个人觉得叫重新布局更简单明了些)。每个页面至少需要一次回流,就是在页面第一次加载的时候。

2. 当Render tree中的一些元素需要更新属性,而这些属性只是影响元素的外观,风格,而不会影响布局的,比如background-color。则就叫称为重绘。

 

当页面布局和几何属性改变时就需要回流。下述情况会发生浏览器回流:

1、添加或者删除可见的DOM元素;

2、元素位置改变;

3、元素尺寸改变——边距、填充、边框、宽度和高度

4、内容改变——比如文本改变或者图片大小改变而引起的计算值宽度和高度改变;

5、页面渲染初始化;

6、浏览器窗口尺寸改变——resize事件发生时;

 

1. 添加、删除元素(回流+重绘)

2. 隐藏元素,display:none(回流+重绘),visibility:hidden(只重绘,不回流)

(二者都是隐藏HTML元素,在视觉效果上没有区别,但在一些DOM操作中二者还是有所不同的。display:none;使用该属性后,HTML元素(对象)的宽度、高度等各种属性值都将“丢失”;visibility:hidden;使用该属性后,HTML元素(对象)仅仅是在视觉上看不见(完全透明),而它所占据的空间位置仍然存在,也即是说它仍具有高度、宽度等属性值。)

3. 移动元素,比如改变top,left(jquery的animate方法就是,改变top,left不一定会影响回流),或者移动元素到另外1个父元素中。(重绘+回流)

4. 对style的操作(对不同的属性操作,影响不一样)

5. 还有一种是用户的操作,比如改变浏览器大小,改变浏览器的字体大小等(回流+重绘)

html5新增的api接口有哪些?

 

印象中的56.com的笔试题:

第一道题是css选择器权重的问题,idclass,!Important

两道布局题:一道是已知两个侧边栏的width,要求中间的能随着浏览器的大小变化宽度

一道是:怎么样使三个容器看起来一样高,(自适应高度),可利用背景图,不能使用js

一道算法题:怎么样使当前数组随机重排,要求不能回到原来的位置。

一道优化题:关于addEventListeneratachEvent,如何能做到最佳优化,加载一次只判断一次

其他的不记得了。

 

面试题:什么是重绘和回流,什么时候会有重绘,什么时候会有回流?

什么是同源策略,怎么样解决?

知道cookie的跨域问题吗?如果想要使www.a.comwww.b.com都能使用cookie值,这个cookie该如何设置?Cookie有什么缺点?

localStroagesessionStroage的存储方式是什么?

Css3新增属性,html5的新增标签和新增的接口有哪些?

用什么浏览器调试?F12里面的哪些功能用的最多?

用什么开发工具?