这两本书就一块儿搞了,大多数已经理解,简单做个标记。主要对自己不太了解的地方,做一些记录。
 
一、读《高性能网站建设指南》
  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. Mac OS X终端下apache操作

    重启apache:sudo /usr/sbin/apachectl restart 关闭apache:sudo /usr/sbin/apachectl stop 开启apache:sudo /usr/ ...

  2. 全排列(java版)

    适用于不同数字的全排列,其实也适用于有重复数字的全排列,只不过的出来的结果有重复,需手动删减掉重复的组合. package testFullPermutation; import java.util. ...

  3. The AndroidManifest.xml File

    manifest (船运的)载货清单 http://www.android-doc.com/guide/topics/manifest/manifest-intro.html Every applic ...

  4. sprintf

    功能:将数据格式化到字符串中 原型:int sprintf( char *buffer, const char *format, [ argument] … );返回值是这个字符串的长度 上次我企图这 ...

  5. tp auth 转载保存

    PS:最近需要做一个验证用户权限的功能,在官方和百度看了下,发现大家都是用auth来做验证,官方有很多auth的使用教程,但是都不全面,我也提问了几个关于auth的问题 也没人来回答我,无奈只好一步步 ...

  6. PHP大批量插入数据库的3种方法和速度对比

    第一种,使用insert into 插入,最后显示为:23:25:05 01:32:05 也就是花了2个小时多! $params = array(‘value'=>'50′); set_time ...

  7. mysql gb2312与lanti1

    1.如果数据库编码为lanti1,页面编码utf-8和gb2312均可,并且不用set names,设置就会乱码: 2.如果数据库编码为utf8,页面编码utf-8和gb2312均可,一定要设置好se ...

  8. Js注册等待

    <为维护网上公共秩序和社会稳定,请您自觉遵守以下条款: <br> <br>  一.不得利用本站危害国家安全.泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用 ...

  9. AppSettingManager

    public class AppSettingManager { public static bool Update(string key, string value) { try { var con ...

  10. java.lang.NoClassDefFoundError: org/hibernate/cfg/Configuration解决方法

    Autowiring of fields failed; nested exception is...........Error creating bean with name 'siteOperat ...