网站速度影响因素众多,而且很多因素在不同时段是变动的,本次网站速度分析旨在综合分析积极寻找影响百利天下教育网站页面加载速度的因素和网站访问速度不稳定性因素,并有针对性的提供网站速度改善方案。
终端用户响应的时间中,有80%用于下载各项内容。这部分时间包括下载页面各个元素,如图像、 样式表、脚本、Flash 等。通过减少页面中的元素可以减少 HTTP 请求的次数。
页面结构布局不清晰,标签没有正确嵌套或闭合,复杂冗余的页面结构布局都会影响页面的打开速度甚至报错,清晰合理的页面布局不仅有利于页面速度提升同时便于网站维护。
实现页面有秩序地加载,这对于拥有较多内容的页面和网速较慢的用户来说更为重要,在标签内引入css实现预加载或者放置于开始标签后,可以避免网速慢的用户在页面打开一瞬间页面错乱现象。
js脚本会阻止了页面的平行下载,js在头部引入往往会影响其后面的页面加载给用户感觉页面打开速度慢,一般而言要将所有的js放置于结束标签前,这样就可以先显示出页面,最后加载js效果;对于一些js直接影响页面载入时显示效果的js,可酌情提前。
在现实中页面引用外部文件会加快页面的加载,因为JS与CSS文件可以被浏览器缓存,如果把JS和CSS内嵌到HTML页面中,每一次加载都会下载一次,虽然减少了请求数,但是增加了HTML页面的大小。一般情况下是将代码量比较小的JS和CSS放入到HTML页面中,以达到请求数与HTML页面大小的平衡点。
css多个重叠属性代码可以缩写的,尽可能缩写;html书写缩进格式以外的空格,制表符同样占用空间,尤其是经常使用的offer榜数据表格占用较大容量,可以进行压缩;js文件包很少修改,可以压缩。精简压缩html、 CSS 和 js 目的就是减少下载的文件容量,以提升页面加载速度。
页面中过多的图片会延迟页面加载时间,影响页面打开速度,因此页面中的图片数量不宜过多,图片质量不宜过高。如果不得不使用很多图片,可以尝试采用页面延时加载技术。
重复调用脚本,除了增加额外的 HTTP 请求外,多次运算也会浪费时间。在 IE 和 Firefox中不管脚本是否可缓存,它们都存在重复运算 JavaScript 的问题,延长了页面加载时间。
Css 中例如 border:none;取代 border:0;display:none 隐藏对象浏览器不作渲染,不占用内存。而 visibility:hidden 则会,这样浏览器无需渲染,提升页面加载速度。
虽然image src,css href属性为空,但是浏览器依然会向服务器发出请求,所以,尽可能地避免出现空src和href属性。
页面制作之前充分考虑页面结构布局,合理切图,制作完成后检查标签嵌套关系正确无误。
在标签内引入css实现预加载或者放置于开始标签后。
所有的js放在结束标签前,影响页面显示效果的酌情考虑提前。
将代码量比较小的JS和CSS放入到HTML页面中,以达到请求数与HTML页面大小的平衡点。
CSS代码缩写可以提高你写代码的速度,精简你的代码量。比如以下两种情况:
1)在CSS里面有不少可以缩写的属性,包括margin,padding,border,font,background和颜色值等。
2)使用多重选择器:你可以合并多个CSS选择器为一个,如果他们有共同的样式的话。这样做不但代码简洁且可为你节省时间和空间。如:
h1{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; }
h2{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; }
h3{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; }可以合并为:
h1, h2, h3{ font-family:Arial, Helvetica, sans-serif;font-weight:normal; }精简压缩CSS和js目的就是减少下载的文件体积,可考虑压缩工具JsCssZip.exe(批量压缩)和YUI Compressor(http://ganquan.info/yui/?hl=zh-CN 在线压缩 )。
检查页面源码中外调css及js是否存在相同外调css、js或者内嵌的css、js,删除重复项。
1、css中border:none;取代border:0
2、注意具有这两个属性的标签如link,script,img,iframe等;
GZIP是在服务器端将网页文件压缩之后传输,然后在客户端解压还原的技术,可以大大的节省带宽资源和网站打开的时间,在企业站和一般网站上利用该技术可以达到很好的效果。
服务器端选择要压缩的文件,大部分都是HTML页面,也可以压缩js和css,以及其他文本,包括XML,JSON等,对于图片及PDF等格式的文件不需要压缩,因为它们已经是压缩过的了,再压缩它们只会浪费CPU及提高文件大小。
服务器端通过添加expires或cache-control头来告诉浏览器将页面中的组件元素缓存多少时间。在缓存的时间段内,如果用户再次请求页面组件时就会直接从缓存中取出数据而不用向服务器直接发出请求,显著提高了用户体验。但是,它只会影响已经访问过网站的用户,对于第一次访问公司网站或者浏览器缓存是空的用户来说,它是没有任何作用的。因此,针对浏览器缓存来说,提高用户访问速度取决于用户点击页面的频次。
每一次重定向都会使得浏览器多一次请求,增加网站的连接次数,提高了网站的连接时间及响应时间。所以,尽量避免重定向的使用。
这里所说的代理服务器其实是指反向代理服务器,它利用的原理跟浏览器缓存技术的原理是一样的,浏览器缓存是将页面及页面组件缓存在浏览器自身的缓存空间中,而代理服务器是将页面及页面组件缓存在服务器端的缓存空间中。这种现象跟CDN的缓存机制有点儿相像,一般请求量比较高的大型网站使用代理服务器。
用户连接服务器的距离长短对响应时间产生了较大的影响。如果将内容分发到地理位置不同的服务器上,比如北京地区用户连接北京地区的服务器,上海地区的用户连接上海地区的服务器,以此来降低用户对服务器的连接和响应时间,对用户的视觉体验上来说能够显著提高用户的访问速度,此时就需要使用CDN技术了,CDN是分布在全国各地的服务器群,它可以缓存静态文件,同时将不同地区的用户的request向离用户最近的服务器上发出请求。如此一来,缩短了用户到服务器间的请求响应时间从而提高了网页的打开速度。