网站前端的性能优化与测试--内容过期

最近在搞网站的界面UI改版,除了少数的几个页面外,全站基本统一了界面风格,在解决各种浏览器兼容问题的时候,不经意搜到一个FireFox的插件 YSlow for Firebug,他是开源的网站优化工具,用于测试网站的前端性能。在YSlow的评价性能等级上,有十三条规则:1. Make fewer HTTP requests,2. Use a CDN,3. Add an Expires header,4. Gzip components,5. Put CSS at the top,6. Put JS at the bottom,7. Avoid CSS expressions,8. Make JS and CSS external,9. Reduce DNS lookups,10. Minify JS,11. Avoid redirects,12. Remove duplicate scripts,13. Configure ETags。这是《Yahoo!网站性能最佳体验的34条黄金守则》中进一步精简的,现在先来讨论第3条,这是比较容易可以实现了的,只需配置一下iis 或者apache等web服务器,给http header 加上“内容过期”即可实现。考虑到网站正在改版,css、js还需要修改,这里分别给相关资源加上较合适的过期时间:1、image、flash 100天后过期;2、css、js 3天后过期。

配置过程:在iis管理器中打开相关网站,找到需要设置的文件、文件夹,然后点击属性,在“http头”一项中即可设置。

如果指定一个过期时间后,如 2008-12-26 14:26:00,则会在浏览器的http header received中会得到一个明确的过期时间:如Expires:Fir,26 Dec 2008 14:26:00 GMT,这是一个标准的GMT时间(格林尼治时间);如果指定100天后过期,header received则会收到Cache-Control:max-age=8640000(以秒来计算)。以上两个header received该指示浏览器缓存该请求的内容,并会在浏览器的临时缓存文件夹中保存该文件直至其到达过期时间(先不考虑浏览器因为缓存空间不足而自动清空缓存和用户清空缓存这些情况),Internet explorer 可以在 C:Documents and SettingsAdministratorLocal SettingsTemporary Internet Files 文件夹找到这些缓存文件。在首次访问时,浏览器会根据Expires 和 Cache-Control是否缓存内容,第二次访问时,如果缓存的内容没有过期,则从缓存直接读取相关内容。还有一种情况,当用户点击刷新按钮时,不管是否缓存,浏览器都会从服务器新请求所有内容。

使用 HttpWatch、yslow的测试过程:

1、打开过期时间、第一次访问



(HttpWatch)



(YSlow)

2、打开过期时间、第二次访问



(HttpWatch)



(YSlow)

3、打开过期时间,HttpWatch 两次访问结果比较



4、没有打开过期时间、第一次访问



5、没有打开过期时间、第二次访问



6、没有打开过期时间,HttpWatch 两次访问结果比较



测试的两次结果略有不同,但是我们可以看到,打开过期时间后第二次访问时,相关文件已经被缓存了,Sent、Received都没有产生通信流量,在 Result一项中显示的是Cache,很明显是从缓存中读取数据了。从第一次访问时的49个Request降低为 9个Request,请求时间与流量都明显减少。打开一个没有设置“内容过期”的网站,首次访问和第二次访问产生的http请求数没有任何改变,但 received也降低许多,这是由于第一次请求时,浏览器会在临将相关文件保存在临时文件夹,服务端会返回给客户端一个Last-Modified字段,以后每次需要这个文件的时候,客户端会把这个字段发送到服务端,服务端拿来和最新的文件做比较,如果没有被改变过,那么返回304 Not Modified,那么客户端就直接从缓存里面拿,所以产生的流量非常小,但是request并没有减少,如上面的第5点。

经过这几次测试比较,可以看到缓存所起的重要作用。 另外在asp.net等程序中,也可以指定过期时间,如:Response.Expires = 3600,这样页面的text/html内容也一样会被缓存,如果数据库内容已经更改,在用户再次访问时,内容并不会更新,在过期时间之内,要获得最新内容可以手动刷新。如果程序中没用指定过期时间、Cache,数据库内容改变后,不管怎样访问网页(新开浏览器,后退),都会得到最新的内容。

(0)

相关推荐

  • 如何做好移动页面性能优化?

    随着移动互联网的发展,我们越发要移动页面的性能优化,今天跟大家谈谈这方面的事情. 首先,为什么要最移动页面进行优化? 纵观目前移动网络的现状: 移动页面布局越来越复杂,效果越来越炫,直接导致了文件越来 ...

  • Ps运行/反应慢怎么办?Photoshop性能优化技巧详细介绍

    经常会看到有一些网友抱怨Ps运行慢怎么办?对于PS制图软件而言,运行速度主要对电脑配置以及PS优化有关,下文是笔者整理的国外网站分享的一些Photoshop性能优化技巧,如果您觉得Ps运行慢的话,不妨 ...

  • Kepler BIOS Tweaker 英伟达显卡性能优化工具的使用步骤

    Kepler BIOS Tweaker 是一款英伟达显卡性能优化软件,可利用成熟的技术来调整BIOS文件中的数值。用户可以在软件层方便顺利得修改BIOS默认的频率值以及电压和TDP用OPEN BIOS ...

  • 让你的网站秒开 为IIS启用"内容过期"

    什么是内容过期? 当用户第一次访问你的网站,浏览器从你的网站主机下载内容,如果用户第二次访问你的网站,浏览器从缓存读取内容。你知道浏览器从缓存读取网页有多快吗?秒开!例如:2345.com这个导航网站 ...

  • 如何确保无线局域网性能优化应

    虽然很多无线局域网经理关注于解决问题和避免安全漏洞,但是无线局域网性能优化更注重于任务清单。这个方法不单单考虑不周全,而且忽视优化还是造成灾难的另一个因素。如果每个AP只需要支持十来个用户上网流量,一 ...

  • 阿里云服务器配置与性能优化

    阿里云我问过很多站长都说非常的不错了,不管是网速还是从性能都比其它主机要好,但阿里云就是贵那么一点了,下面小编来给各位介绍阿里云服务器配置与性能优化 更换阿里云服务器有一阵了,相对于我以前的虚拟主机不 ...

  • 网站内部代码如何优化

    都说网站优化内容为王,下面我们就来看看如何做好网站内部代码的优化这只是我的一点浅见: 步骤/方法 01 首页优化的重点是提高对用户的友好度,减小文件大小,提高链接的曝光率.导航.栏目等链接中存在多余的 ...

  • 网站链接URL结构优化方法

    操作方法 01 对于网站seo优化来说,我们在设计网站的时候就需要很清晰的对于自己网站的url结构进行优化可控设计,例如url的命名规则,url的层次,url的规范化等等,都是后期搜索引擎对于网页的抓 ...

  • Java编程中为了性能优化应做到的26件事

    操作方法 01 电脑内存爆满了,除了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了.下面南宁达内小编根据网络资源 ...