文章来源:http://www.chinaz.com/web/2014/1112/373946.shtmljavascript
一、减小页面HTTP请求数量php
比较直接的理解就是要减小调用其余页面、文件的数量。css
A.咱们在使用css格式控制的时候,常常会采用background载入不少图形文件,每一个background的图像至少产生1次HTTP请求,通常咱们为了让页面生动活泼会大量使用background来加载背景图,要改善这个情况,能够采用css的1个有用的background-position属性来加载背景图,咱们将须要频繁加载的多个图片合成为1个单独的图片,须要加载时,采用如下形式加载便可将这部分图片加载的HTTP请求缩减为1个。html
B.采用Image maps,这个方法也比较经常使用,只是限于同1个区域使用。java
C.Inline images,这个方法不多见到,但对于很小很简单的图像倒是很实用的,相关语法标准参照:tools.ietf.org/html/rfc2397。nginx
二、使用CDN(Content Delivery Network)网络加速web
如今国内作CDN加速业务的公司不少,简单讲,就是将你的图片、视频扩散到CDN网络所能到达之处,让用户访问时能就近下载到这些文件,从而达到网络提速的目的,这样作,同时能减轻你本身网站的负载。express
三、添加文件过时或缓存头浏览器
对于同一用户频繁访问的图片、Js脚本文件等能够在Apache或Nginx设置其缓冲 时间,例如设置24小时过时时间,这样用户在访问过该页面以后再次访问时,同一组图片或JS不会再重复下载,从而减小了HTTP请求,用户访问速度明显有 所提高,同时服务器负载也会降低。下面给出nginx配置中缓存控制的例子:缓存
四、服务器开启gzip压缩
这个你们都比较了解,即将须要传输的内容压缩后传输到客户端再解压,这样在网络上传输的 数据量会大幅减少。一般在服务器上的Apache、Nginx能够直接开启这个设置,也能够从代码角度直接设置传输文件头,增长gzip的设置,也能够从 负载均衡设备直接设置。不过须要留意的是,这个设置会略微增长服务器的负担。
五、css格式定义放置在文件头部
这项设置对于用户端是慢速网络或网页内容比较庞大的状况比较有利,能够在网页逐步呈现的同时仍会保持格式信息,不影响网页美感。
六、Javascript脚本放在文件末尾
不少Javascript脚本执行效率低下,或者有的第3方域名脚本出现意外没法载入, 若是将这些脚本放置到页面比较靠前的位置,可能会致使咱们本身网站的内容载入速度降低甚至没法正常加载,因此通常将这些脚本放置在网页文件末尾,必定要放 置在前面的脚本要改用所谓的“后载入”方式加载,在主体网页加载完成后再加载,防止其影响到主体网页的加载速度。
七、避免使用CSS脚本(CSS Expressions)
有时为了要css的参数动态改变,可能会采用css expression来实现,但这样作得不偿失,会使用户端浏览器负担明显加剧,因此不建议这样作,若是须要改变,可使用Javascript脚本去实现。
八、css、javascript改由外部调用
若是css、js内容比较庞大,尽可能不要写到同1个页面中去,改由外部载入比较稳当,由于浏览器自己会对css、js文件进行缓存。
九、压缩Javascript、CSS代码
通常js、css文件中存在大量的空格、换行、注释,这些利于阅读,若是可以压缩掉,将会颇有利于网络传输。这方面的工具也有不少,通常能够保留开发版本,利用工具生成生产版本,2个文件比较,通常压缩率能达到50%以上,减小的数据量仍是比较可观的。
十、避免采用30一、302转向
十一、养成良好的开发维护习惯,尽可能避免脚本重复调用
十二、配置ETags
1三、Ajax采用缓存调用
这个的使用能够参照Discuz论坛代码,里面对于大量使用的Ajax调用都采用了缓存 调用方式,通常采用附加特征参数方式实现,注意其中的
就是特征参数,这个参数不变化就使用缓存文件,若是发生变化则从新下载新文件或更新信 息。
1四、合理使用Flush
用户端发送浏览请求后,服务器端通常要花销200-500ms去处理这些请求,在此期间,用户端浏览器处于等待状态,若是要减小用户等待时间,能够在适当的位置使用flush,将已经就绪的内容推送到用户端,这在php中很容易实现例如:
1五、Ajax调用尽可能采用GET方法调用
实际使用XMLHttpRequest时,若是使用POST方法实现,会发生2次HTTP请求,而使用GET方法只会发生1次HTTP请求。若是改用GET方法,HTTP请求减小50%!
1六、尽量减小DCOM元素
这个很好理解,就是尽量减小网页中各类<>元素数量,例如
的冗余很严重,而咱们彻底能够用取代之。
1七、使用多域名负载网页内的多个文件、图片
记得有资料说明,IE在网页载入过程当中,在同1时刻,对同1域名并行加的HTTP请求数 量最高为2个,若是网页须要加载的文件数量超过2个(一般远远超过..),要加快网页访问速度,最好将文件分布到多个域名,例如19楼,其js文件采用独 立的域名,听说百度的图片服务器数量在20台以上。
1八、缩减iframe的使用,如无必要,尽可能不要使用
iframe一般用于不一样域名内容的加载,这同时也可能因iframe内容加载速度影响到主网页加载速度,若是可能,把须要加载的内容抓取到本地直接嵌入。若是实在须要iframe加载,采用后载入方式实现。
1九、优化图片文件
优化图片文件,减少其尺寸,特别是缩略图,必定要按尺寸生成缩略图而后调用,不要在网页中用resize方法实现,虽然这样看到的图片外形笑了,可是其加载的数据量一点也没减小。曾经见过有人在网页中加载的缩略图,其真实尺寸有10M之巨…
普通图像、icon也要尽量压缩后,能够采用web图像保存、减小颜色数等等方法实现。
20、当页面内容庞大到必定程度,能够采用分页的方式展示,或者taobao的那种翻页后载入方式。