如何提高网站的负载性能。网站建设公司根据自己的亲身经历总结了以下几个方面,希望能给新手站长一些帮助。
1.减少HTTP请求的数量
构造请求和等待响应需要时间,所以请求越少越好。请求减少的一般思想是组合资源并减少显示一个页面所需的文件数量。
1).图像映射
通过设置标签的usemap属性并使用标签,可以剪切图片中的多个区域并指向不同的链接。与使用多个图像分别构建链接相比,减少了请求的数量。
2).CSS Sprite(CSS贴图集成/贴图展平/贴图定位)
这是通过设置元素的背景位置样式来实现的。对于一般界面图标。典型的可以参考TinyMCE编辑器顶部的那些小按钮。本质上,多个小图是由一个统一的大图通过不同的偏移量切割而成的,这样加载界面上的很多按钮实际上只需要请求一次(请求大图一次),从而减少了HTTP请求的次数。
3).内嵌图像(内嵌图像)
不是在src中指定外部图像文件的URL,而是将图像信息直接放入。比如src = " data:image/gif;Base64,R0lGODlhDAAMAL ... "在一些特殊情况下很有用(比如一张小图片只在当前页面使用)。
2.使用多线CDN
为您的站点提供多条线路(如国内电信、联通、移动)和多个地理位置(北、南、西)的接入,让所有用户都能快速访问。
3.使用HTTP缓存
向不经常更新的资源(如静态图)添加更长的过期标头信息。这些资源一旦缓存,在未来很长一段时间内都不会重复传输。
4.使用Gzip压缩
使用Gzip压缩HTTP消息,可以减少体积和传输时间。
5.将样式表放在页面的前面
先加载样式表,这样页面渲染可以更早开始,给用户页面加载更快的感觉。
6.将脚本放在页面的末尾
同理5,页面显示先处理,页面渲染早完成,脚本逻辑晚执行,给用户页面加载更快的感觉。
7.避免CSS表达式
过于复杂的JavaScript脚本逻辑、DOM搜索和选择操作会降低页面处理的效率。
8.使用JavaScript和CSS作为拓展资源
这似乎违背了原则1中的合并思想,其实不然:考虑一下,每个页面都引入了一个通用的JavaScript资源(比如jQuery或ExtJS这样的JavaScript库)。单从页面的性能来看,内联(即将JavaScript嵌入到HTML中)页面的加载速度要快于外部(使用标签引入)页面(因为它的HTTP请求更少)。但是如果很多页面都引入了这个公共的JavaScript资源,那么内联方案就会造成重复传输(因为这个资源嵌入在每个页面中,所以每打开一个页面就要传输一次这部分资源,造成网络传输资源的浪费)。这个问题可以通过独立对外利用这类资源来解决。
因为JavaScript和CSS相对稳定,所以我们可以为它们对应的资源设置一个较长的有效期(参考原则3)。
9.减少DNS查找
作者给出的建议是:
1).使用Keep-Alive保持联系。
如果连接断开,下一次将执行DNS查找,即使相应的域名-IP映射已被缓存,查找也需要一些时间。
2).减少域名
每次请求新域名,都需要通过DNS搜索不同的域名,DNS缓存无法发挥作用。所以要尽量在统一的域名下组织站点,避免使用过多的子域。
10.压缩你的JavaScript
使用JS压缩工具来压缩您的JavaScript。很有效果。看看jQuery的两个不同发行版,看看它们的区别:
jQuery代码的Http://code.jquery.com/jquery-1.6.2.js版本,230KB
Http://code.jquery.com/jquery-1.6.2.min.js压缩的jQuery代码(用于实际部署),89.4KB
11.尽量避免重定向
重定向是指在你实际访问你想看的页面之前,增加一轮额外的HTTP请求(客户端发起HTTP请求→HTTP服务器返回重定向响应→客户端发起请求新的URL→HTTP服务器返回内容,带下划线的部分是额外的请求),所以需要更多的时间(给人的感觉是响应较慢)。所以除非必要,不要随意使用重定向。几种“必要”情况:
1).避免URL无效
旧站点迁移后,为了避免旧URL失效,通常会将对旧URL的请求重定向到新系统的相应地址。
2).URL美化
在可读性好的URL和实际的资源URL之间进行转换。比如Google Toolbar,用户记住的是http://toolbar.google.com,一个对人类有语义的地址,但是很难记住http://www . Google . com/tools/Firefox/Toolbar/FT3/intl/en/index . html,真正的资源地址。所以要保留前者,把对前者的请求重定向到后者。
12.删除重复的脚本
不要在一个页面中重复介绍同一个脚本。例如,如果脚本B和C都依赖于A,那么在使用B和C的页面中可能会出现对A的重复引用,解决方案:对于简单站点,手动检查依赖关系,消除重复介绍;对于复杂的站点,需要建立自己的依赖管理/版本控制机制。
13.小心处理电子标签
ETag是除Last-Modified之外的另一种HTTP缓存方式。确定资源是否已被哈希修改。但是ETag也有一些问题,比如:
1).不一致:不同的Web服务器(Apache、IIS等。)定义不同的ETag格式。
2).ETAG的计算是不稳定的(由于太多的因素),例如:
1)相同的资源在不同的服务器上计算出来的etag是不同的,大型Web应用通常由多个服务器服务,导致客户端在服务器A缓存的资源明显仍然有效,但在下一个请求B中会因etag不同而被视为无效,导致相同资源的重复传输。
2)资源不变,但是ETag由于一些其他因素而变化,例如配置文件变化。直接结果就是系统更新后,客户端缓存大规模失效,导致传输量大增,站点性能下降。
笔者的建议是:要么根据你的应用特点改进现有的ETag计算方法,要么干脆用最简单的Last-Modified代替ETag。
14.在Ajax中使用HTTP缓存
Ajax是一个异步请求,它不会阻塞你当前的操作,当请求完成后,你可以立即看到结果。然而,异步并不意味着它可以立即完成,也不意味着它需要无限长的时间才能完成。因此,应该注意Ajax请求的性能。很多Ajax请求访问的都是一些相对稳定的资源,所以不要忘了利用好Ajax请求的HTTP缓存机制。详见原则3和原则13。
返回新闻列表