高性能网站建设指南

《高性能网站建设指南》读书笔记

你离开我真会死。 提交于 2019-12-19 04:06:41
读完这本书,对于网站性能有了一个更加深入的理解,以前对于网站的优化,还以为只是服务器的事,是后台设计模式或编码技巧的原因,是数据库优化的问题,没怎么考虑到前端的优化,但是这本书改变了我的局限思维,让我认识到前端对网站性能的影响是如此巨大: 80% 的最终用户响应时间花在了页面中的组件上,也就是说,如果我们可以将后端的响应时间缩短一半,整体响应时间只能减少 5%~10% ;而如果关注前端,缩短前端响应时间的一半,那么整体响应时间可以减少 40%~45% 。而前端改善网站性能的方法也不是无迹可寻,而是很有技巧很有方法的。这其中就包括书中介绍的 14 条规则: 1、 减少 http 请求; 2、 使用内容发布网络; 3、 添加 expires 头部; 4、 压缩组件; 5、 将样式表放在顶部; 6、 将脚本放在底部; 7、 避免 css 表达式; 8、 使用外部的 javascript 和 css ; 9、 减少 dns 查找; 10、 精简 javascript ; 11、 避免重定向; 12、 移除重复脚本; 13、 配置 etag ; 14、 使 ajax 缓存。 当然这些规则,以前自己写代码的时候有意无意的根据前人的经验而遵守着,比如,添加 expires 头部,将样式表放在顶部,将脚本放在底部,大量小图片用 css sprite 处理,将样式表和脚本以引用的方式导入 html

《高性能网站建设指南》读书笔记

主宰稳场 提交于 2019-12-18 15:23:17
规则 1 -减少 HTTP 请求 请求网页时只有 10 %- 20 %的最终用户响应时间花在接收请求的 HTMl 文档上,剩下的 80 %- 90 %时间花在为 HTML 文档所引用的所有组建(图片,脚本,样式表, Flash 等)进行的 HTTP 请求上,因此改善响应时间的最简单途径就是减少组件的数量,并由此减少 HTTP 请求数量。 图片地图:我们可以将多个图片完成的功能,使用一个图片,根据的不同区域来响应不应的请求。 合并脚本和样式表:每个文件都会导致一个 HTP 请求,尽量将 css 和 js 合并到一个文件中。 规则 2 -使用内容发布网络 在多个地理位置不同的服务器上部署内容,如果 web 服务器离拥护更近,则一个 http 请求的响应时间将缩短,如果组件 web 服务器离拥护更近,则多个 http 请求的响应时间将缩短。有很多公司提供 CDN (内容发布网络)服务。 CDN 用于发布静态内容,如图片,脚本,样式表和 Flash 。 规则 3 -添加 Expires 头 使用 Expires 来设置浏览器缓存,指到指定的时间为止一直访问缓存中的内容。另外在 http1.1 中引入了 cache - control 头来克服 Expires 头的限制,因为 Expires 头使用一个特定时间,它要求服务器和客户端的时钟严格同步,过期时间需要经常检查

Limu:JavaScript的那些书

我怕爱的太早我们不能终老 提交于 2019-11-30 21:05:05
又好久没写东西了 ,写上一篇的时候还以为接下来的工作会轻松一些 ,结果未从我所愿呐 ,又是一阵忙碌。而这段时间穿插着做了很多12年淘宝校园招聘的前端面试 ,很多同学都有问到 ,学校里没有前端的课程 ,那如何学习JavaScript? 我的回答是:读书吧!相对于在网上学习 ,在项目中学习和跟着有经验的同事学习 ,书中有着相对完整的知识体系 ,每读一本好书都会带来一次全面的提高。而如果深一脚浅一脚的学习 ,写出代码的质量会参差不齐。初学者的首要任务是成为靠谱的熟练开发者 ,能够稳定的输出有一定质量的代码 ,这样才能让人放心的把任务交给你。从这个角度来看 ,跟着w3school类成体系的网络教程学习也是不错的选择 ,只不过我没有亲自实践过。 在07年之前 ,我是在做IEonly的企业级B/S应用 ,虽然当时项目的JScript就已经非常复杂 ,但当时团队里有很多经验丰富的同事 ,多是跟他们请教 ,或者再MSDN和网上找答案。07年进入阿里之后 ,开始直面兼容性问题 ,同时开始单打独斗 ,这个阶段开始接触相关的前端书籍 ,最先购买的是《 JavaScript高级程序设计 》和《 JavaScript DOM 编程艺术 》。可以说比较幸运 ,挑中了这两本很靠谱的书(其实当时市面上书籍并不多 ,感谢选择出版这些书和翻译这些书的同学们) ,近来这两本书都出了第二版其生命力可见一斑。 这几年来

《高性能网站建设指南》笔记-2 规则2——使用内容发布网络

删除回忆录丶 提交于 2019-11-27 19:57:56
网站最初通常将其所有的服务器放在同一个地方。当用户群增加时,公司就必须面对服务器放置地点不再适用的事实——有必要在多个地理位置不同的服务器上部署内容。 作为实现地理位置分离的第一步, 不要 尝试适用分布式架构重新设计你的web应用程序。这样的应用程序决定了重新设计将带来令人恐惧的任务,如同步会话状态和在服务器放置地点之间复制数据库事务。重新设计这一步骤会推迟——甚至根本无法实现——缩短用户和你的内容之间的距离这一愿望。 如果 应用程序web服务器 (application web server)离用户更近,则 一个http 请求的响应时间将缩短。另一个方面,如果 组件web服务器 (component web server)离用户更近,则 多个http 请求的响应时间将缩短。 与其开始重新设计应用程序这一艰难任务,以便将应用程序web服务器分散开,不如首先将组件web服务器分散开。这不仅能达到响应时间大幅减少的目的,还很容易实现。 内容发布网络 content delivery networks 内容发布网络(CDN)是一组分布在多个不同地理位置的web服务器,用于更加有效地向用户发布内容。 无论如何也不要使用http重定向来将用户指向到本地服务器,这会使web页面反应变慢。 除了缩短响应时间之外,CDN还可以带来其他优势。他们的服务包括备份,扩展存储能力和进行缓存