Fork me on GitHub

《高性能HTML5》

第一章 概述

HTML5 概念:不仅仅是指最新版本的 HTML 标记语言,还包含了很多被现代浏览器所支持的新技术,例如 CSS3、嵌入式音频/视频、Canvas、WebSocket、应用程序缓存、本地存储、索引数据库、文件API、地理位置等。
什么是高性能
页面加载时间
浏览器性能
网络性能
开发效率

第二章 开发原则

浏览器工作原理
HTML 解析为一颗 DOM 树。
DOM 树和 CSS 样式表结合起来构成渲染树(Firefox 中渲染树被称作框架树)。
根据渲染树,浏览器开始绘制。
改进性能
减少 HTML 中元素的数量
减少重绘(效果更明显)
动态改动 DOM 和 CSS 样式时有两点需要考虑
改动的元素在 DOM 树的深度,越深则改动就越独立,对其他节点影响越少,所以能改多深就改多深。
对 DOM 有多次操作,尽量合并到一次做完而不是分成一次一次地去做。
CSS 放到 head 标签内(避免白屏),script 放到 body 标签的尾部(避免延迟页面元素的渲染)
使用特性检测,而不是浏览器版本号检测。

第三章 性能准则

影响页面加载时间的因素(按强弱排序)
减少 HTTP 请求
使用 CDN 加速
避免空的 src 或 href 属性值
增加过期头
启 GZIP 压缩
把 CSS 放在头部
把 JavaScript 放到尾部
避免使用 CSS 表达式
删除不使用的 CSS 语句
对 JavaScript、CSS 进行代码压缩
减少重绘
减少 HTTP 请求
理解并行连接
HTTP1.1 协议很明确限制了单个用户不能在同一时间保持2个以上的连接。大部分浏览器突破了这个限制。充分利用浏览器并发,将资源文件散列到不同的域名。但 DNS 查询耗时。
合并资源文件
使用图片精灵
减少重绘
规定图片的宽和高
不要用表格布局
定义字符集
不要重组 DOM

第四章 响应式网页设计

CSS3 媒介查询
自适应图片
弹性栅格

第五章 理解页面重用机制

第六章 页面模板

使用IE的兼容模式(通常情况下应该关闭,除非由于历史原因不得不使用),可以通过以下 meta 标签做到

1
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

其中,http-equiv=”X-UA-Compatible”告诉IE(IE8 以上支持)将要设置兼容模式状态。content属性确定了采用什么样的兼容模式规则。IE=edge告知浏览器不要采用兼容模式而总是采用最新版本的规则来渲染。chrome=1告诉IE如果用户安装了 Google Chrome Frame(GCF)插件,那么启用它,以 Chrome 内核的渲染方式渲染网页。

为 iPhone 使用 Viewport:

1
<meta name="viewport" content="width=device-width">

第七章 导航

ID 属性选择器的性能是最高的(但比含标识符的选择器高的不多)。因为标识符可以重复使用,所以应该使用含标识符的选择器而不是 ID 属性选择器,牺牲这点性能是值得的。试图让所有浏览器展示完全一样的效果有时候并不是可取的。

据说帅的人都赏给博主几块钱零花钱。