高性能网站建设指南:性能提升的14个原则

作者:杨梦冬 时间:2011-07-14 16:04:54 

今日大致浏览了一下《High Performance Web Sites》。本书的中文版是《高性能网站建设指南》。本书另有对其中个别问题深入探究的进阶篇《Even Faster Web Sites》,中译《高性能网站建设进阶指南》。这本书中给出了14条网站性能提升的原则,每个原则独立成章,配有示例。这些原则大多数都非常实用,适合站点架构师、前端工程师。其中对于前端工程师的意义更大一些。这次看的是原版。我对于Web开发较缺乏实践经验,加之看得匆忙,因此可能存在遗漏、表述不当之处,希望广大网友不吝指正。

  原则1 减少HTTP请求数

构造请求、等待响应需要时间,因此请求数量越少越好。减少请求的总体思路就是合并资源,减少显示一个页面需要的文件数。

1. Image Map

通过设置<img>标签的usemap属性与使用<map>标签可以在一幅图片上切分出多个区域,指向不同的链接。比起使用多幅图片分别构造链接减少了请求数。

2. CSS Sprite(CSS贴图整合/贴图拼合/贴图定位)

通过设置元素的background-position样式做到。一般用于界面图标。典型的可以参考TinyMCE编辑器上方的那些小按钮。多个小图实质是从一个统一的大图通过不同的偏移量裁剪而来,这样加载界面上的众多按钮实际上只要请求一次(请求大图一次),从而减少HTTP请求数。

3. Inline Image(内联图片)

在<img>的src中不指定外部图片文件的URL,而是直接将图片信息放入。例如src=”data:image/gif;base64,R0lGODlhDAAMAL...”某些特殊情况下有用(例如一个不大的图片仅在当前页面用到)。

原则2 利用多线路CDN

为你的站点提供多种线路(例如国内电信、联通、移动)、多个地理位置(北方、南方、西部)的访问,使得所有用户都能够快速访问。

原则3 利用HTTP Cache

给不频繁更新的资源(例如静态图)加较长的Expires头信息,这些资源一经缓存,未来很长时间都可以不再重复传输了。

原则4 使用Gzip压缩

使用Gzip压缩HTTP报文,减小体积,减少传输时间。

原则5 将样式表置于页面前部

先加载样式表,这样页面渲染得以较早开始,给用户页面加载较快的感觉。

原则6 将脚本置于页面尾部

原因同5,先处理页面显示,页面渲染较早完成,而脚本逻辑稍后执行,这样给用户页面加载较快的感觉。

原则7 避免使用CSS表达式

过于复杂的JavaScript脚本逻辑、DOM查找、选择操作将会降低页面处理效率。

标签:HTTP请求数,性能
0
投稿

猜你喜欢

  • django rest framework 数据的查找、过滤、排序的示例

    2023-07-18 16:33:39
  • Python初学者需要注意的事项小结(python2与python3)

    2021-08-16 19:49:26
  • JavaScript对象的property属性详解

    2024-05-05 09:22:57
  • sqlserver 支持定位当前页,自定义排序的分页SQL(拒绝动态SQL)

    2024-01-16 03:58:06
  • Python 获取当前路径3种方法

    2023-04-15 00:03:24
  • 用python实现PDF解密打印文件

    2022-01-01 03:53:44
  • Python 监测文件是否更新的方法

    2022-05-11 02:37:20
  • 分享css处理浏览器兼容问题上的小技巧

    2008-02-03 14:41:00
  • python实现class对象转换成json/字典的方法

    2021-11-16 00:46:34
  • vue实现全选、反选功能

    2024-04-09 10:58:43
  • 使用keras实现BiLSTM+CNN+CRF文字标记NER

    2022-05-01 04:46:22
  • Go语言设计模式之实现观察者模式解决代码臃肿

    2024-05-25 15:11:17
  • Python3 Post登录并且保存cookie登录其他页面的方法

    2023-08-18 22:45:52
  • Python 炫技操作之合并字典的七种方法

    2022-07-16 05:56:12
  • Pytorch实现List Tensor转Tensor,reshape拼接等操作

    2021-06-06 19:58:51
  • Python代码中引用已经写好的模块、方法的两种方式

    2021-04-20 05:45:14
  • Python 调用 C++ 传递numpy 数据详情

    2021-05-12 20:00:39
  • python numpy矩阵信息说明,shape,size,dtype

    2021-02-21 17:52:47
  • python set()去重的底层原理及实例

    2021-08-30 05:04:11
  • python-图片流传输的思路及示例(url转换二维码)

    2021-06-18 14:48:44
  • asp之家 网络编程 m.aspxhome.com