Internet Explorer uses Trident, Firefox uses Gecko, Safari uses WebKit. Chrome and Opera (from version 15) use Blink, a fork of WebKit.WebKit 是一个开源渲染引擎,起初作为Linux platform的引擎,后被 Apple应用于Mac. 详见 webkit.org.
浏览器对请求的呈现。默认渲染引擎可以呈现html,xml及图片。(通过插件)也可以呈现其它数据,比如pdf等。 目前只考虑html和css方面。渲染主流程:
content tree:在此,渲染引擎解析html文档并将元素转换成DOM节点。
render tree:在此,渲染引擎解析style(外部css文件或内联style)并转换。这是一个渐进式过程. 为保证好的UED,渲染引擎尽早展现内容. 在开始构建并展现render树之前,它不会等所有html被解析。部分内容被解析并呈现,同时进程继续解析网络中不断请求到的其余内容。
您在浏览 HTML 网页时从来不会看到“语法无效”的错误。这是因为浏览器会纠正任何无效内容,然后继续工作。1. 明显不能在某些外部标签中添加的元素。在此情况下,我们应该关闭所有标签,直到出现禁止添加的元素,然后再加入该元素。2. 我们不能直接添加的元素。这很可能是网页作者忘记添加了其中的一些标签(或者其中的标签是可选的)。这些标签可能包括:HTML HEAD BODY TBODY TR TD LI(还有遗漏的吗?)。3. 向 inline 元素内添加 block 元素。关闭所有 inline 元素,直到出现下一个较高级的 block 元素。4. 如果这样仍然无效,可关闭所有元素,直到可以添加元素为止,或者忽略该标记。复制代码CSS 解析
和 HTML 不同,CSS 是上下文无关的语法,可以使用简介中描述的各种解析器进行解析。事实上,CSS 规范定义了 CSS 的词法和语法。
重新渲染,就需要重新生成布局和重新绘制。前者叫做"重排"(reflow),后者叫做"重绘"(repaint)。"重绘"不一定需要"重排","重排"必然导致"重绘"。重排和重绘会不断触发,这是不可避免的。但是,它们非常耗费资源,是导致网页性能低下的根本原因。提高网页性能,就是要降低"重排"和"重绘"的频率和成本,尽量少触发重新渲染。
构建高性能应用程序的有效方法是审核发送给用户的资源。虽然Chrome开发人员工具中的网络面板可以很好地总结给定页面上使用的所有资源,但如果您到目前为止尚未考虑性能,那么知道从哪里开始可能会令人生畏。以下是一些建议:
通过一些关于哪些资源适合发送以及如何发送它们的想法,我们将介绍一些限制发送数据的建议:
Web Caching Optimization reduces server load, bandwidth usage, and latency. CDNs use dedicated web caching software to store copies of documents passing through their system.Leveraging the browser cache is crucial. It is recommended to have a max-age of 7 days in such cases. This saves server time and makes things altogether faster.
Redirects are performance killers. Avoid them whenever possible. A redirect will generate additional round-trip times and therefore quickly doubles the time that is required to load the initial HTML document before the browser even starts to load other assets.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |