我们知道用户都喜欢浏览速度快的网站,不喜欢花费太多的时间等待网页的打开,等待的时间过长,会让用户失去耐心,甚至烦躁时会直接关闭网页,这样就会失去一些潜在的客户了。
其次,从seo的角度来说,关键字的排名与网页的打开速度也有关系,google的web搜索团队曾在官方博客上宣布,将把网站的速度作为pr(pagerank)算法的一个因子,在所有因素都相等的情况下,速度快的网站将排在速度慢的网站前面。同时指出很多网站都没有利用最佳的页面优化技术,页面加载速度都存在很大缺陷。那么,我们该如何补救并提高网站页面的加载速度呢?
1、合并js文件和css
将js代码和css样式分别合并到一个共享的文件,这样不仅能简化代码,而且在执行js文件的时候,如果js文件比较多,就需要进行多次“get”请求,延长加载速度,将js文件合并在一起后,自然就减少了get请求次数,提高了加载速度。
用户打开用css设计的网页,css一般被下载用户本地计算机,不像html元素表现标签,每次网站的网页都要调用一次,使用css,只需要一次就好了!另外,css在某些地方可以替代图片,这就是为什么现在提倡div css的原因!
2、sprites图片技术
spriting是一种网页图片应用处理方式,它是将一个页面涉及到的所有零星图片都包含到一张大图中去,然后利用css技术展现出来。这样一来,当访问该页面时,载入的图片就不会像以前那样一幅一幅地慢慢显示出来了,可以减少了整个网页的图片大小,并且利用csssprites能很好地减少网页的http请求,从而大大的提高页面的性能。
csssprites在国内很多人叫css精灵,很早就有了,在很多大型网站都有用到,特别是一些所有页面都存在的图标用得比较多,很好的提升加载速度。
3、压缩文本和图片
压缩技术如gzip可以有效减少页面加载的时间。包括html,xml,json(javascript对象符号),javascript和css等,压缩率都可以在大小70%左右。
一般文本压缩用得比较多,通常都是直接在空间开启就行,而图片的压缩就比较随意,很多都是直接上传,其实还有很大的压缩空间。
4、延迟显示可见区域外的内容
为了确保用户可以更快地看见可见区域的网页可以延迟加载或展现可见区域外的内容,为了避免页面变形,可以使用占位符标签制定正确的高度和宽度。
比如:wp的jqueryimage lazyload插件就可以在用户停留在第一屏的时候,不加载任何第一屏以下的图片信息,只有当用户把鼠标往下滚动的时候,这些图片才开始加载。这样很明显提升可见区域的加载速度,提高用户体验。
5、确保功能图片优先加载
网站主要考虑可用性的重要性,一个功能按钮要提前加载出来,用户进入下载页,一个只需要8s时间的下载花了5s在等待、寻找下载按钮图片,谁能忍受?
还有个问题需要注意的是:一些人经常忘记写图片的长和宽了,这些标记是告诉浏览器打开图片之前的尺寸,如果能提前设置好图片的height和width,浏览器加载网页时就会保留一块区域,加快整个网页显示速度。6、重新布置call-to-action按钮
其实这个和上面一条是差不多的,都是从用户体验速度着手,跳过了网页的整体加载速度。速度没变,只是让一些行为按钮提前,call-to-action按钮一般习惯设计在页面底部,这样的习惯对于用户来说并不总是好的,购买用户需要等到最下面加载出来才能点击下一步操作。
可以调整cta按钮的位置或使用滑动的图片按钮,很多大型购物网站的加入购物车就是这种类型。
7、图片格式优化
不恰当的图像格式是一种极为常见的减慢加载速度的罪魁祸首。正确的图片格式可以让图片缩小数倍,如果保存为最佳格式,可以节省大量带宽,减少处理时间时间,大大加快页面加载速度,这是一种很常见的做法。
8、使用progressive jpegs
progressive jpegs图片是jpeg格式的一个特殊变种,名为“高级jpeg”。在创建高级jpeg文件时,数据是这样安排的:在装入图像时,开始只显示一个模糊的图像,随着数据的装入,图像逐步变得清晰,它相当于交织的gif格式的图片。
高级jpeg主要是考虑到使用调制解调器的慢速网络而设计的,快速网络的使用者通常不会体会到它和正常jpeg格式图片的区别。对于网速比较慢的用户,这无疑有很好的体验。
9、精简代码
这个可以说是最直接的一个方法,也是用得比较多的,对网页代码进行瘦身,删除不必要的沉冗代码,比如不必要的空格、换行符、注释等,包括js代码中的无用代码也需要清除。
在同等网络环境下,页面越小自然下载时间越快,所以在合理范围内减少页面大小是可以优化下载速度的。而页面大小主要是由html的代码量来决定的(当然也可能包括一些css或者js的代码,不过主体还是html代码),要想减小页面的大小,就得根据w3c的标准来优化html代码结构,去除一些垃圾无意义的代码。
其中对于注释代码的清除可能有些人存在误区,甚至有的在里面堆砌关键词。
10、延迟加载和执行非必要脚本
网页中有很多脚本是在页面完全加载完前都不需要执行的,可以延迟加载和执行非必要脚本。这些脚本可以在onload事件之后执行,避免对网页上重要内容的呈现造成影响。这些脚本可能是你自己网页的甲苯,往往更多的是一些第三方脚本,这样的有很多,比如:评论、广告、智能推荐、百度云图、分享和点击次数统计等等,这些完全可以等主体内容加载完后再执行。
11、使用ajax
对于网页的打开,其实是很复杂的过程。从网页的申请打开,到web服务器的响应,编译等动作,然后发回给浏览器,才显示我们面前的文字和图片,多媒体文件等。所以我要尽量减少响应次数,现在ajax在这方面就运用的不错。当然,一个静态页面就例外了,静态页面多注意图片大小和网页设计上就行了。
ajax即“asynchronous javascript xml“,是指一种创建交互式网页应用的网页开发技术。通过在后台与服务器进行少量数据交换,ajax可以使网页实现异步更新。
这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页(不使用ajax)如果需要更新内容,必须重载整个网页面。
12、自动化的页面性能优化
自动化的页面性能优化也就是借助工具了,网站提速工具有很多,相信大家在网上也看到了很多,具体的效果也很难断定,所以这里也就不多说了。
重视网站的用户体验可以说是互联网发展由技术为中心到以用户为中心的一种转变,主流的搜索引擎都将网站的用户体验作为评价网站的重要标准,毕竟搜索引擎蜘蛛也只是网站的一个普通用户,要想在搜索引擎获得好的评价,就不得不重视用户体验的优化,而网站的加载速度则是用户体验的首要条件。