在前一篇随笔大型网站系统架构的演化中,介绍了大型网站的演化过程,期间穿插了一些技术和手段,我们可以从中看出一个大型网站的轮廓,但想要掌握设计开发维护大型网站的技术,需要我们一步一步去研究实践。所以我打算写一个系列,从理论到实践讲述大型网站的点滴,这也是一个共同学习的过程,希望自己能坚持下去。系列大概会分为两部分,理论和实践,理论部分尽量通俗易懂,也要讲一些细节。实践部分会抽取一些技术做实践,将 *** 、解决问题过程分享出来。本文将讲述大型网站中一个重要的要素,性能。
什么是性能
有人说性能就是访问速度快慢,这是最直观的说法,也是用户的真实体验。一个用户从输入网址到按下回车键,看到网页的快慢,这就是性能。对于我们来说,需要去挖掘这个过程,因为这决定我们怎么去做性能优化。
这中间发生了什么?
用户访问网站的整个流程:用户输入网站域名,通过DNS解析,找到目标服务器IP,请求数据经互联网达到目标服务器,目标服务器收到请求数据,进行处理(执行程序、访问数据库、文件服务器等)。处理完成,将响应数据又经互联网返回给用户浏览器,浏览器得到结果进行计算渲染显示给用户。
我们把整个过程,分为三段路径:
1、之一段在用户和浏览器端,主要负责发出用户请求,以及接受响应数据进行计算渲染显示给用户;
2、第二段在 *** 上,负责对请求数据、响应数据的传输;
3、第三段在网站服务器端,负责对请求数据进行处理(执行程序、访问数据库、文件等),并将结果返回;
之一路径
之一路径花费的时间包括输入域名发起请求的时间和浏览器收到响应后计算渲染的时间。
输入域名发起请求,实质过程是:
1、用户在浏览器输入要访问的网站域名;
2、本地DNS请求网站授权的DNS服务器对域名进行解析,并得到解析结果即IP地址(并将IP地址缓存起来)。
3、向目标IP地址发出请求。
从这个过程我们可以看到,优化的地方主要是减少DNS解析次数,而如果用户浏览器设置了缓存,则再第二次访问相同域名的时候就不会去请求DNS服务器,直接用缓存中的IP地址发出请求。因此这个过程主要取决于浏览器的设置。现在主流的浏览器默认设置了DNS的预取功能(DNS Prefetch),当然你也可以主动告知浏览器我的网站需要做DNS预取:
浏览器将数据进行计算渲染的过程:
1、浏览器解析响应数据;
2、浏览器创建DOM树;
3、浏览器下载CSS样式,并应用到DOM树,进行渲染;
4、浏览器下载js文件,开始解析执行;
5、显示给用户。
从这个过程,我们可以找出不少可以优化的地方。首先我们可以尽量控制页面大小,使得浏览器解析的时间更短;并且将多个CSS文件、 *** 文件文件合并压缩减少文件下载的次数和大小;另外注意将CSS放在页面前面, *** 访问页面后面,这样便于页面首先能渲染出来,再执行js脚本,对于用户来说有更好的体验。最后我还可以设置浏览器缓存,下次访问时从缓存读取内容,减少http请求。
该代码说明了浏览器启用了缓存并在5秒内不会再次访问服务器。注意缓存的设置需要结合你的业务特性来适当配置。
以下是京东商城的HTML简图:
css样式放在html前面,并且进行了合并。
大多数的 *** 文件放在页尾。
更多关于 云服务器, 域名注册, 虚拟主机的问题,请访问 西部数码官网: www.west.cn扫描二维码推送至手机访问。
版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。
开会之前有点兴奋,因为又能见到很多老朋友了。当然,更高兴的是又能多认识一些新朋友。。。今天把所有换回来的名片全都一张一张看了一遍,发现还是有好多人不认识,想不起当初交换名片的时候对方长的是什么样了,或许以后站长们在名片上还是把网上的昵称印上会更好些,因为大家都是草根,也没必要那么正式。。在会...
编者:蓝色理想 www.blueidea.com 成立于1999年的10月,作为国内最大的设计类站点之一,以建设网站设计与开发人员之家为宗旨,以介绍网络开发技术与网站创作设计交流为主要内容。其网站内容制作精良,每天都会有会员精心制作的教程发布,无私地对网友进行帮助,而且还举办过不少设计比赛并...
有个女孩叫君儿,男孩叫磊。他们通过QQ聊天认识了,然后经常写信聊天,到相识相知。03年的圣诞节他们见面了,彼此感觉应该还算 很不错,晚上在一起吃饭,在晚上一起去了我们学校过圣诞节。这一晚,君回学校宿舍了,2004年1月1日 元旦到了,磊磊非常想君儿,磊就打电话喊君一起出来玩,那一晚上我们都没有...
春节快到了,因本人经济困难,想做兼职,有意者来电来函咨询,本人承接以下业务: 苦力搬运,装卸,车工,钳工,焊工,水电工,瓦工,砸墙,砌墙,筛沙,油漆,通下水道,贴瓷砖,拆洗油烟机,拆装空调,Vb,C++, .NET,C#,Java,j2ee, j2me,asp,delphi,php,汇编,P...
我出生在一个贫困的家庭中。玩电脑开始是在2000年,那个时候正在上学,基本上是在玩玩红警,星际争BA。其实四年学习生涯中都一直在玩电脑。(有点多余,文采不好,为了求落伍,各位支持下!) 2002年的时候,班里要搞网...
不会做网页的职业站长 &...