新足迹

 找回密码
 注册

精华好帖回顾

· 小儿女记事系列20--小花朵出生前的故事(成功的胎儿外转ECV) (2010-5-11) 清凉 · 看警察热帖有感,给大家提供一些信息 (2020-10-16) Walle
· 感天动地的二小毛哟,为奶奶一片忠心把门开 (2009-3-7) edith921 · 爱情是什么 - 《玫瑰的故事》读后 (2009-8-23) astina
Advertisement
Advertisement
查看: 1182|回复: 5

探讨High Performance Website,从刷新说起吧, [复制链接]

发表于 2011-1-22 21:50 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
最近在读两本关于网站运行速度的书--(页面方面,非数据库端),觉得眼界又开阔 了一点。
当用户端请求一个页面的时候(比如oursteps.co),用户机器发送请求到服务器,服务器返回页面,用户和服务器似乎就那么一个来回,想起来很简单。其实,如果是首次访问,真正的请求是100个左右,也就是说,用户的机器向服务器发送了大约100个请求,服务器端处理每一个 请求并返回结果,最后用户的浏览器显示一个页面。

说说刷帖吧。很多人(包括我)在跟踪一个感兴趣的贴时候可能会使用浏览器的刷新功能,以这个贴https://www.oursteps.com.au/bbs/viewthread.php?tid=308872&extra=page%3D1为例,如果只是点进这个帖,用户端向服务器发送大约5个请求,服务器解析处理每个请求并发回数据,如果刷新这个帖,猜猜多少个请求会发送到服务器???????????????50个请求。每当一个用户按一下刷新,就有50个左右的请求送到服务器,服务器处理每个请求并发回结果。


提升网站速度的第一Gold Rule是减少请求数量,涉及到很多方面。
还是以刷帖为例吧,其实用户需要的是得到一个帖子的最新跟帖,现在的情况是,就算没有最新的跟帖,用户机器也会向服务器发送50个请求,服务期解析这50个请求,并将帖子内容从新发给客户端,客户端再从新组织显示页面内容。

真正理想的做法应该是客户端发送一个请求(比如Ajax),服务器解析后发回最新跟贴,或者发回空的数据,如果没有更新的话,而不是发回整个帖子。或者更进一步,客户端发送一个“请帮我自动更新本贴一旦有新的跟帖” ,

一次刷帖为什么会产生50个服务器请求呢?以这9个图片为例(附图),几乎每个帖子会出现,当我们刷帖时,我们的机器就会发送九个请求给服务器,服务器解析后很可能发回一个个304说本图片没有更新过-- 请使用客户机中现有图片。如果想要减少请求数量,可以把这个9个图片合成一个,再用 CSS Sprite来控制使用,这样刷帖的时候请求数量就从9减少到1了。 当然理想的做法是一个图片请求都不要发送,因为毫无意义,只是徒增服务期负担,

(备注:以上数据和用户端的浏览器设置有关,)

[ 本帖最后由 典 于 2011-1-22 21:51 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 5积分 +32 收起 理由
黑山老妖 + 8 感谢分享
kr2000 + 5 谢谢奉献
bulaohu + 6 感谢分享

查看全部评分

Advertisement
Advertisement

退役斑竹 2008年度奖章获得者 特殊贡献奖章

发表于 2011-1-22 21:58 |显示全部楼层
此文章由 steveking 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 steveking 所有!转贴必须注明作者、出处和本声明,并保持内容完整
专业,mark!

发表于 2011-1-23 00:45 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
嗯,sprite和httpcombiner(css/javascript)是我们的策略,可以全部的static的东西在其他domain的server上,traffic就可以省些cookie的传送.

发表于 2011-1-23 11:14 |显示全部楼层
此文章由 zhilaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 zhilaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
正如乱码所言,Sprite 和 httpcombiner 是比较常用和有效的减少http requests的策略。

装个YSlow for Firefox 给你的web pages 打个分吧,:)

http://developer.yahoo.com/performance/rules.html

发表于 2011-1-23 21:31 |显示全部楼层
此文章由 wdsyjgn 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 wdsyjgn 所有!转贴必须注明作者、出处和本声明,并保持内容完整
这就是为虾米大型网站的前端都有反向代理滴原因~~~

发表于 2011-1-24 08:32 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
追求performance基本上从4个方向考虑就差不多了:
1. infrastructure
2. web layer
3. app layer
4. Database layer
Advertisement
Advertisement

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部