ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] ## 1、documen.write和 innerHTML的区别 > document.write只能重绘整个页面 > innerHTML可以重绘页面的一部分 ## 2、简述一下你对HTML语义化的理解 ? ~~~ 语义化是指根据内容的类型,选择合适的标签(代码语义化),即用正确的标签做正确的事情; html语义化让页面的内容结构化,结构更清晰,有助于浏览器、搜索引擎解析对内容的抓取; ~~~ ## 3、你对重绘、重排的理解? 1)首先网页数次渲染生成时,这个可称为重排; 2)修改DOM、样式表、用户事件或行为(鼠标悬停、页面滚动、输入框键入文字、改变窗口大小等等)这些都会导致页面重新渲染,那么重新渲染,就需要重新生成布局和重新绘制节点,前者叫做"重排",后者"重绘"; 3) 减少或集中对页面的操作,即多次操作集中在一起执行; 4) 总之可以简单总结为:重绘不一定会重排,但重排必然为会重绘。 ## 4.浏览器是如何渲染页面的? 渲染的流程如下: 1.解析HTML文件,创建DOM树。    自上而下,遇到任何样式(link、style)与脚本(script)都会阻塞(外部样式不阻塞后续外部脚本的加载)。 2.解析CSS。优先级:浏览器默认设置<用户设置<外部样式<内联样式<HTML中的style样式; 3.将CSS与DOM合并,构建渲染树(Render Tree) 4.布局和绘制,重绘(repaint)和重排(reflow)