什么是重绘与回流,页面渲染是重绘还是回流?
回流何时发生:
回流必将引起重绘,而重绘不一定会引起回流。
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选择器权重的问题,id,class,!Important
两道布局题:一道是已知两个侧边栏的width,要求中间的能随着浏览器的大小变化宽度
一道是:怎么样使三个容器看起来一样高,(自适应高度),可利用背景图,不能使用js等
一道算法题:怎么样使当前数组随机重排,要求不能回到原来的位置。
一道优化题:关于addEventListener和atachEvent,如何能做到最佳优化,加载一次只判断一次
其他的不记得了。
面试题:什么是重绘和回流,什么时候会有重绘,什么时候会有回流?
什么是同源策略,怎么样解决?
知道cookie的跨域问题吗?如果想要使www.a.com和www.b.com都能使用cookie值,这个cookie该如何设置?Cookie有什么缺点?
localStroage和sessionStroage的存储方式是什么?
Css3新增属性,html5的新增标签和新增的接口有哪些?
用什么浏览器调试?F12里面的哪些功能用的最多?
用什么开发工具?