这两本书就一块儿搞了,大多数已经理解,简单做个标记。主要对自己不太了解的地方,做一些记录。
 
一、读《高性能网站建设指南》
  0> 黄金性能法则:只有10%~20%的最终用户响应时间花在了下载HTML文档上。其余的80%~90%时间花在了下载页面中的所有组件上。
  1> 尽量减少HTTP请求
  2> 使用CDN
  3> 添加Expires头
  4> 采用Gzip压缩组件
  5> 将样式表放在顶部
  6> 将脚本放在底部
  7> 避免CSS表达式
  8> 使用外部JavaScript和CSS
  9> 减少DNS查找
  10> 精简JavaScript
  11> 避免重定向
  12> 避免重复脚本
  13> 配置Etag
  14> 使Ajax可缓存
 
二、读《高性能网站建设进阶指南:Web开发者性能优化最佳实践》
第一章:理解Ajax性能
1> 权衡——时间、质量和成本,三选二
2> 优化原则——降低程序的整体性能。
  把重点放在对程序整体开销影响大的那部分。优化那些开销不大的组件收效甚微。分析应用程序和分析算法密切相关。自习观察程序的执行时间后,我们会发现其大部分时间都消耗在循环上。所以,优化那些只执行一次的代码得到的回报微不足道,但优化内部循环的好处却能达到立竿见影的效果。
  浏览器通常在运行JavaScript上花费的时间很少。绝大部分时间消耗在DOM上。
3> 善加利用ajax技术能使应用程序运行得更快,用好它的关键是在浏览器和服务器之间建立平衡。
 
第二章:创建快速响应的web应用
  足够快的标准:
基于Web应用的响应时间准则和所有其他应用一样。37年来这些准则毫无变化。所以它们也不太可能因新技术的出现而发生变化。
 
0.1秒:用户直接操作UI中对象的感觉极限。比如,从用户选择表格中的一列到该列高亮或向用户反馈已被选择的时间间隔。理想情况下,它也是对列进行排序的时间响应——这种情况下用户会感到他们正在给表格排序。
 
1秒:用户随意地在计算机指令空间进行操作而无需过度等待的感觉极限。0.2~1.0秒的延迟意味着会被用户注意到,因此感觉到计算机出于对指令的“处理中”,这有别于直接响应用户行为的指令。例如:如果根据被选择的列对表格进行排序无法再0.1秒内完成,那么必须在1秒内完成,否则用户将感觉到UI变得缓慢且在执行任务中失去“流畅”的体验。超过1秒的延迟要提示用户计算机正在解决这个问题。例如改变光标的形状。
 
10秒:用户专注于任务的极限。超过10秒的任何操作都需要一个百分比完成指示器。以及一个方便用户终端操作且有清晰标示的方法。假设用户遭遇超过10秒延迟后才能返回到原UI的情况,他们将需要重新适应。在用户的工作中,超过10秒的延迟尽在自然中断时可以接受。比如切换任务时。
 
第三章:拆分初始化负载
  在初始化页面的时候只加载必要的模块(包括JavaScript和Css等),其余的按需加载。
 
第四章:无阻塞加载脚本
  1> XHR注入
  2> Script in Iframe
  3> Script DOM Element
  4> Script Defer
  5> document.write Script Tag
 
第五章:整合异步脚本
  对于无阻塞脚本加载的技术,需要整合行内脚本和其依赖的异步加载外部脚本的技术,解决加载顺序等问题。
 
第六章:布置行内脚本
  理解行内脚本位置对性能的影响——行内脚本阻塞并行下载
  a> 把行内脚本移至底部
  b> 异步启动脚本
  c> 使用script的defer属性
 
第七章:编写高效的JavaScript
    避免过多的DOM交互、过多的循环、过多的递归
 
第八章:可伸缩的comet
 
第九章:超越Gzip
  最小化未压缩文件的大小等
 
第十章:图像优化
1> 合理选择图片格式
2> 自动化使用无损压缩技术尽可能削减图片大小
 
第十一章:划分主域
  域从一个增加到两个对性能有所提高。但数量超过两个时反而对加载时间有负面影响。最终数量取决于资源的大小和数量,但划分域是个很好的经验。
 
第十二章:尽早刷新文档的输出
 
第十三章:少用iframe
1> 开销最高的DOM元素
2> 阻塞onload事件
......
 
第十四章:简化CSS选择符
    样式系统从最后边的选择符开始向左匹配规则。只要当前选择符的左边还会有其他选择符,样式系统就会继续向左移动,直到找到和规则匹配的元素,或者因为不匹配而退出。
 
三、总结
  OK,剩余的多实践,不多说。

【读书笔记】读《高性能网站建设指南》及《高性能网站建设进阶指南:Web开发者性能优化最佳实践》的更多相关文章

  1. 经典的性能优化最佳实践 web性能权威指南 读书笔记

    web性能权威指南 page 203 经典的性能优化最佳实践 无论什么网络,也不管所用网络协议是什么版本,所有应用都应该致力于消除或减 少不必要的网络延迟,将需要传输的数据压缩至最少.这两条标准是经典 ...

  2. Google的网站性能优化最佳实践

    网站性能最佳实践   当描述一个web页面的页面速度,评价的一致性遵循许多不同的规则.这些规则是任何阶段的web开发可以应用的前端最佳实践.这个文档的每个规则都陈述于此,无论你是否运行页面测速工具-- ...

  3. 大型网站技术架构(3):WEB 前端性能优化

    上次说到了性能优化策略,根据网站的分层架构,可以大致的分为 web 前端性能优化,应用服务器性能优化,存储服务器性能优化三大类 这次来说一下 web 前端性能优化,一般来说,web 前端就是应用服务器 ...

  4. 【读书笔记】2016.12.10 《构建高性能Web站点》

    本文地址 分享提纲: 1. 概述 2. 知识点 3. 待整理点 4. 参考文档 1. 概述 1.1)[该书信息] <构建高性能Web站点>: -- 百度百科 -- 本书目录: 第1章 绪论 ...

  5. 网站的高性能架构---Web前端性能优化

    网站性能测试 不同视角下的网站性能 用户视角的网站性能:从用户角度,网站性能就是用户在浏览器上直观感受到的网站响应速度.用户的感受时间包括用户计算机和网站服务器通信的时间.网站服务器处理请求时间.用户 ...

  6. web前端性能优化指南(转)

    web前端性能优化指南 概述 1. PC优化手段在Mobile侧同样适用2. 在Mobile侧我们提出三秒种渲染完成首屏指标3. 基于第二点,首屏加载3秒完成或使用Loading4. 基于联通3G网络 ...

  7. web前端性能优化指南

    web前端性能优化指南 web前端性能优化指南 概述 1. PC优化手段在Mobile侧同样适用2. 在Mobile侧我们提出三秒种渲染完成首屏指标3. 基于第二点,首屏加载3秒完成或使用Loadin ...

  8. Web前端性能优化教程05:网站样式和脚本

    本文是Web前端性能优化系列文章中的第五篇,主要讲述内容:网站样式和脚本代码的放置位置.使用外部javascript和css.完整教程可查看:Web前端性能优化 一.将样式表放在顶部 可视性回馈的重要 ...

  9. 大型网站技术架构,4网站的高性能架构之Web前端性能优化

    一般说来Web前端指网站业务逻辑之前的部分,包括浏览器加载.网站视图模型.图片服务.CDN服务等,主要优化手段有优化浏览器访问.使用反向代理.CDN等. 4.2.1 浏览器访问优化 1.减少http请 ...

随机推荐

  1. 转-Android中自动连接到指定SSID的Wi-Fi

    最近在做一个项目,其中涉及到一块“自动连接已存在的wifi热点”的功能,在网上查阅了大量资料,五花八门,但其中一些说的很简单,即不能实现傻瓜式的拿来就用,有些说的很详细,但其中不乏些许错误造成功能无法 ...

  2. 桂电在linux环境下使用出校器

    一.官方出校器(无界面) 由于学校官方最新的linux版出校器无效,我们只能使用老版本的出校器了. 但因为老版本的出校器是32位的,而现在主流使用的是64位系统,因此我们得安装32位库. 在ubunt ...

  3. 深入浅出Redis01安装

    一 什么是Redis? Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API. Redis是一个高性能的Key-Va ...

  4. lnux下源码安装MySQL 5.6

    nux下源码安装MySQL 5.6 说明:本文是我自己测试的MySQL5.6源码安装,经本人亲自实践,完全可用,另在5.6之前的版本也是可以按照本文源码安装的.我是在两台linux下一台安装5.5,另 ...

  5. Percona XtraDB Cluster(转)

    Percona XtraDB Cluster是针对MySQL用户的高可用性和扩展性解决方案,基于Percona Server .其包括了Write Set REPlication补丁,使用Galera ...

  6. juery动态添加和删除

    拼语句添加框(不能删除原有的tr) //点击a标签 $("#a").on("click",function(){ var $newtr = $("&l ...

  7. C++小思

    Bjarne那稀疏的棕褐色头发, 有点红的眼睛, 这个可爱的好老头, 感觉他更应该是一个哲学家, 因为他用编程的语言C++ 揭示了我们这个纷繁复杂世界的本质: 对象. 对的, 世界是由对象组成的, 并 ...

  8. 21个常用的PHP代码汇总

    PHP 是目前使用最广泛的基于 Web 的编程语言,驱动着数以百万计的网站,其中也包括如 Facebook 等一些大型站点.这里收集了 21个日常开发中实用便捷的 PHP 代码,希望可以对一些 PHP ...

  9. MySQL数据库服务器的架设

    导读 MySQL数据库是Linux操作系统上用得最多的数据库系统,它可以非常方便的与其它服务器集成在一起,如Apache.Vsftpd.Postfix等.下面介绍RHEL 6平台MySQL数据库服务器 ...

  10. 随机Loading

    using UnityEngine; using System.Collections; public class Loading : MonoBehaviour { public bool m_Is ...