原文地址:
http://samy.eaful.com/myforum/blog/detail.ef?id=108
本来想直接发到javaeye上的,但是这里只能上传3个图片文件,所以还是选择了自己的网站。
本文以
http://www.eaful.com网站为例,为刚做完第一阶段的性能优化作一个总结,希望能给大家抛砖引玉。
我的这个网站刚上线不久,因为时间比较仓促,所以先发布,再来优化性能。经过优化后从数据看是非常明显的,不过你访问的时候可能还是比较慢,因为目前我的服务器带宽只有电信2M独享,呵呵,见笑了吧!穷,没办法。这个网站主要以分享图片为主题,功能比较简单。将来也不会做的复杂,因为你从名字中就可以看出 eaful , easy is beautiful. 呵呵。
我的性能优化分两个阶段实现:
第一阶段:前台性能优化
主要指减小页面输出流,完善客户端cache策略。
第二阶段:后台性能优化
主要包括数据库优化,cache优化,算法优化和Page Stream Cache。
目前完成了第一阶段,第二阶段估计在10月国庆节完成。下面详细介绍第一阶段的性能优化。
1)为静态文件独立域名
因为我的网站主要是图片,每张图片就有50-60K,以后访问量大的时候会独立一台图片服务器,以减轻应用服务器的压力,所以为静态文件的URL独立一个二级域名(img.eaful.com),为什么不独立一个顶级域名,因为考虑到cookie共享等因素,比如有些图片必须登陆后访问。
2)优化客户端cache
比如一些静态文件,如图片,css文件,js文件等不用每次都更新,所以使用永久cache。方法是在response头中设置Cache-Control 为max-age=99999999,大概缓存3年左右吧。如果css文件修改了怎么办呢,所以这里的关键点是在URL中放入版本参数。如:http://img.eaful.com/virtual/all.css.v1222319367387其中v1222319367387是版本信息,当文件修改后,就修改这个版本号输出链接。这样浏览器发现这是一个新URL,所以会重新请求。
这里要注意的是只对有含有版本号的URL缓存,否则一旦客户端永久cache你就不能让他何时更新了。如更改了js文件,客户端没有更新,这样可能报错了你也不知道。
对图片的链接,就算不包含版本号,也至少让他缓存到凌晨过期(使用Expires头)。这样不会每次刷新页面都更新图片。而且就算图片有修改,最多也是晚一天看到罢了。
3)合并css,js文件
我本来有3个css文件,5个js文件。首次打开的时候要请求8次,虽然现代浏览器支持长连接,但还是没有放到一个文件中快,只要下载一次就够了。我把css文件合并为一个,js文件合并为一个,效果很明显。我这里使用的合并不是发布期手工合并,而是运行期根据配置合并,在应用启动时合并载入在内存中。
谢谢quake wang的提醒:把css中的小图片合成一张大图片,然后在css中调节显示位置。但这里需要注意的是修改图片时,要保持原图片的位置不变,并且不影响其他图片的位置。我目前的做法是给每个小图片一定的空余空间,如一个30*30px的图片,我给它在大图中的空间是50×50px,这样的话以后这个图片需要变大的话,不会影响右边和下边的图片了。如果超过50×50px,就给它100×100px,反正是某个整数的倍数,这样便于在css中调节显示位置。
4)压缩文本输出
css文件,js文件,html文件都是文本输出,都可以用gzip压缩,而且有立竿见影的效果。我的200K的js文件压缩后只有49K了,还是很满意的。也可以考虑在压缩前用ShrinkSafe先瘦身,它可以把注释去掉,缩短变量名的方法减小js文件,以我200K的js文件为例,瘦身后只有 100K了,但是用gzip压缩,只能压到39K,感觉效果不是很明显,而且据说有eval的bug,所以我这里没有采用。还可以考虑对css文件, html文件进行瘦身,比如删除两边的空格,回车等,但我觉的使用了gzip压缩,删除和不删除空格,压缩效果应该不会相差太大,所以也没有采用。
以下是我在firefox中使用firebug测试性能的截图,优化前和优化后的效果比较。
优化前:
优化后:
以上是firfox首次打开
http://www.eaful.com/myforum/forum/list.ef的截图,整整提高了1秒多。第二次打开就更快了,几乎所有东西静态文件都在客户端有缓存。
也可以使用
http://www.websiteoptimization.com/services/analyze/index.html来分析页面下载性能。
优化前:
Object Size Totals
Object type Size (bytes) Download @ 56K (seconds) Download @ T1 (seconds)
HTML: 46442 9.46 0.45
HTML Images: 10354 2.46 0.45
CSS Images: 19620 6.31 2.50
Total Images: 29974 8.77 2.95
Javascript: 186931 38.66 2.39
CSS: 16635 4.12 0.89
Multimedia: 0 0.00 0.00
Other: 0 0.00 0.00
优化后:
Object Size Totals
Object type Size (bytes) Download @ 56K (seconds) Download @ T1 (seconds)
HTML: 45412 9.25 0.44
HTML Images: 10354 2.46 0.45
CSS Images: 0 0.00 0.00
Total Images: 10354 2.46 0.45
Javascript: 47708 9.71 0.45
CSS: 4028 1.00 0.22
Multimedia: 0 0.00 0.00
Other: 0 0.00 0.00
优化前和优化后的效果还是很明显的,但是js文件中使用了prototype.js这个js文件,有126K,以后有时间的话会把这个文件替换掉。
参考文章:
http://www.thinkvitamin.com/features/webapps/serving-javascript-fast
分享到:
相关推荐
文章首先介绍了网站优化的基本思想,包括对用户、搜索引擎以及网站运营维护的优化,然后详细阐述了网站优化的主要内容,并对幻剑书盟网站的优化现状进行了问题分析,最后提出了针对性的优化建议。 绪论: 网站优化...
下面我们将深入探讨SEO、伪原创及其与网站优化的关系。 首先,SEO网站优化是一项技术与策略相结合的工作,其核心是通过改善网站的结构、内容、代码以及外部链接等多方面因素,使网站更符合搜索引擎的抓取规则,提高...
SEO(Search Engine Optimization)搜索引擎优化是提升网站在搜索引擎自然排名的一种技术策略,旨在使网站更容易被用户找到。网站优化不仅仅是关于关键词的堆砌,而是涵盖了多个方面,包括但不限于内容质量、用户...
2. 内容优化:优质、有价值且与关键词相关的原创内容对搜索引擎友好。确保标题、元描述、H1标签等包含关键词,并保持内容的更新和定期增新。 3. 网站结构:清晰的网站结构有助于搜索引擎理解和索引网页。良好的URL...
2. 内容优化:高质量、原创且与关键词相关的网站内容是SEO的核心。内容应具有价值,易于理解,并定期更新,以保持新鲜度。 二、元标签和元素 1. 标题标签(Title Tag):页面的标题是搜索引擎判断页面主题的重要...
### 原创内容:网站建设与优化的基石 在当今数字化时代,网站作为企业或个人在线展示的重要平台,其建设和优化工作显得尤为重要。而在众多优化策略中,**原创内容**被视为核心中的核心,是推动网站权重提升、吸引...
网站优化计划方案是提升网站...7. 内容优化:提供有价值、原创、更新频繁的内容,吸引用户并提升搜索引擎排名。 通过上述优化措施,网站将有望在搜索引擎中获得更高的曝光度,吸引更多的目标用户,进而提升业务效益。
SEO,即搜索引擎优化,是提升网站在搜索引擎自然搜索结果中排名的一种技术手段。在这个数字化时代,网站优化对于吸引流量、提高品牌知名度以及转化率至关重要。标题提到的“SEO伪原创工具”是一种辅助工具,旨在帮助...
SEO(Search Engine Optimization)是搜索引擎优化的简称,它是一门技术,旨在提升网站在搜索引擎自然搜索结果中的排名,从而增加网站的可见性,吸引更多的流量。SEO网站优化不仅仅是关于关键词的堆砌,而是涉及到...
跟目前流传的版本不同,本人硕士方向为微网两阶段鲁棒优化调度,纯原创!内容构建了微网两阶段鲁棒调度模型,建立了min-max-min 结构的两阶段鲁棒优化模型,可得到最恶劣场景下运行成本最低的调度方案。模型中考虑了...
网站优化工具是提升网站性能、用户体验以及搜索引擎排名的重要辅助手段。在互联网竞争激烈的今天,一个高效、快速且用户友好的网站对于企业的在线成功至关重要。"网站优化助手3.2"这款软件很可能包含了多种功能,...
### 某个网站优化SEO方案 #### 一、竞争对手分析 在进行SEO优化之前,首先需要对竞争对手进行深入分析,以便明确自身网站的优势与不足之处。本案例中,主要针对“痔疮”、“痔疮治疗”、“怎样治疗痔疮”、“治疗...
本资源名为“【原创】网站SEO增加外链自动优化工具[整合版].exe”,是一款专门用于自动化外链建设的软件。作者声明这是其原创作品,旨在帮助用户更高效地进行SEO工作,特别是对外链的增加和管理。 该工具可能包含...
代码基于matlab+yalmip+cplex实现,和目前流传的都不一样,个人原创,注释详细,结构清晰有条理,运行的图形效果很好。对于任意随机生成的初始化光伏和负荷场景都可实现有效的收敛。所提出的模型考虑了分布式电源和...
SEO(搜索引擎优化)是提高网站在搜索引擎结果中自然排名的一种策略,从而吸引更多的流量,最终实现收益增长。以下是对如何制定和执行SEO优化方案的详细说明: 一、团队构成 一个有效的SEO优化团队通常包括前端/页...
大型网站性能优化的常规手段。包含CDN加速、负载均衡、页面优化等。原创。
在互联网世界中,搜索引擎优化(SEO)是提升网站可见性和流量的关键策略之一,尤其是在Google这样的全球主导搜索引擎上。"Google网站优化方案"是专门针对如何提高Google搜索结果中网站排名的指南。以下是一些核心的...
根据给定的信息,我们可以深入探讨SEO(搜索引擎优化)在网站优化中的重要性及其具体实施方法。下面将详细解析网站优化的四个主要因素,并结合部分文本内容进行延伸。 ### SEO与网站优化 #### 1. 了解网站优化的...
它的主要目标是通过优化网站内容和结构,提高特定关键词在搜索引擎搜索结果中的排名,从而增加网站的可见度和流量,最终提升销售或者品牌宣传效果。SEO分为站内优化和站外优化,涉及网页设计、内容策略、链接建设等...