1.渲染机制什么是DOCTYPE及其作用DTD告诉浏览器文件是什么类型的文档,浏览器根据它来判断使用什么引擎来解析渲染的文件。DOCTYPE用于声明文档类型和DTD规范。浏览器如何呈现HTML5:HTML4.01Strict:Strict模式不包含presentational和deprecated元素HTML4.01Transitional:Relaxed模式重新排列Reflow定义:DOM结构中的每个元素都有自己的盒模型,这需要浏览器根据各种样式进行计算,并根据计算结果将元素放置在应该出现的位置。触发Reflow:当你添加、删除或修改DOM节点时,会导致Reflow或Repaint移动DOM位置。当你修改CSS样式时,当你调整窗口大小时,或者当你滚动时,当你修改网页的默认字体时,重绘Repaint定义:页面上所有要呈现的内容都被绘制到屏幕上。触发Rrpaint:DOM修改CSS修改示例:添加DOM时,最好添加一次,避免多次。Layout总结Layout:当用户输入一个URL时,浏览器会发送一个请求,请求的URL对应的资源HTML解析器会解析该文件并构建成DOM树。在构建DOM树时,遇到JS和CSS元素,HTML解析器将控制权交给JS或CSS解析器。当JS或CSS解析器解析完这个元素后,HTML继续解析下一个元素,直到整个DOM树构建完成。DOM树建好后,浏览器把DOM树去掉一些不可见的元素,然后用CSSOM合成一个rendertree,然后浏览器根据rendertree计算出每个节点(元素)在屏幕上的位置。这个过程称为布局,输出是布局树。最后,浏览器根据布局树将页面渲染到屏幕上。同步任务和异步任务EventLoop:浏览器引擎遇到setTimeout,识别为异步任务。浏览器把这个时间模块拿走,时间到了就放到异步队列中。异步任务:setTimeout和setIntervalDOM事件ES6Promise3。页面性能提高页面性能的方法:资源压缩整合,减少HTTP请求将在解析HTML后执行。如果有多个defer,会按照加载的先后顺序依次执行。异步将在加载后立即执行。如果有多个defer,执行顺序和加载顺序将无关紧要。BrowserCache-》缓存分类-》缓存原理及缓存相关的HTTPHeaderStrongCache//表示绝对时间,服务器发出的ExpiresExpires:Thu,21Jan201723:39:02GMT//比较会有当地时间的偏差。在3600s内不需要请求Cache-Control。Cache-Control:max-age=3600//如果两次都下发,则指定后者。协商缓存和服务器协商//如果服务器发出的时间过期Last-ModifiedIf-Modified-SinceLast-Modified:Web,26Jan201700:35:11GMT//Hash值判断是否可以使用-->EtagIf-None-MatchusesCDN:NetworkAccelerationPre-resolutionDNS如果页面以HTTPS协议开头,强制启用DNS预解析
