12

Click here to load reader

Inside browser

Embed Size (px)

DESCRIPTION

浏览器,架构,css,browser

Citation preview

Page 1: Inside browser

在浏览器的背后

Page 2: Inside browser

架构

当你点击浏览的时候……

下载 =>产品:HTML文件

解析 =>产品:DOM树

CSS计算=>产品:渲染树

布局 =>产品:带位置和形状信息的渲染树

渲染 =>产品:可见图形

下载 解析 CSS计算 布局 渲染

Page 3: Inside browser

架构

我们要等下载完成之后才开始解析吗?

下载

解析

CSS计算

布局

渲染

Page 4: Inside browser

下载

一个HTTP库就能搞定?

这不是一个文件的问题

<script src="JQuery.js" ></script><link href="All.css" type="text/css" …<img src="……<iframe src="……

何时开始下载它们?

Page 5: Inside browser

下载

<head>中的<script>和<link>

服务端flush

<body>中的<script>与document.write

new Image

IE的defer属性

Opera的优化

Page 6: Inside browser

解析

tokenize

转义符处理

标签匹配EntityDef ination.c

Page 7: Inside browser

CSS计算

CSS选择器

id索引、name索引

优化选择符

保持选择符线性

body中的style

DOM树与渲染树

DOM树!=渲染树?

:before :after伪类

Page 8: Inside browser

布局

流布局

display: inline/block/inline-block;float:left/right;clear:left/right/both;position:static/relative/fixed/absolute;

正常流、floats、绝对定位

display: list-item;

display:run-in;

Page 9: Inside browser

布局

Reflow

floats reflow

DOM reflow

CSS reflow

改变大小(width,height,margin,padding)

改变display

改变position

改变float

改变clear

Page 10: Inside browser

布局

table布局

display: table/inline-table/table-row-group/table-column/table-column-group/table-header-group/table-footer-group/table-row/table-cell/table-caption

table vs. div —— table布局 vs. 流布局

Page 11: Inside browser

渲染

transform filter z-Index color visibility

relayout与repaint

display :none vs. visibility:hidden;

IE9的硬件加速

Page 12: Inside browser

更多……

Script引擎

盒模型

DOM API实现

scrolling

overflow

表单元素

文化和语言

缓存

……