网站访问速度加速的方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Dangdangcyuyan/article/details/52074078

一、网上搜集到的一些解决方案

1、减少CSS文件数量和体积

网站加载CSS文件的时间为:浏览器开始载入html代码,发现<head>标签内有一个<link>标签引用外部CSS文件。

注:根据网站CSS加载的特性,如果在编写过程中有多个CSS文件,所以建议将多个CSS文件进行合并,这样可以加快网站的加载速度。另外,对CSS文件进行规格化设计,尽量减小CSS的文件的大小。

2、网站程序中采用DIV+CSS这种模式来设计网站的HTML布局,尽量减少或者不用Table

DIV+CSS的优点:1)符合W3C标准。微软等公司均为W3C支持者。这一点是最重要的,因为这保证您的网站不会因为将来网络应用的升级而被淘汰。(2)支持浏览器的向后兼容,也就是无论未来的浏览器大战,胜利的是IE7或者是火狐,您的网站都能很好的兼容。(3)搜索引擎更加友好。相对与传统的table,采用DIV+CSS技术的网页,对于搜索引擎的收录更加友好。(4)样式的调整更加方便。内容和样式的分离,使页面和样式的调整变得更加方便。 现在YAHOOMSN等国际门户网站,网易,新浪等国内门户网站和主流的WEB2.0网站,均采用DIV+CSS的框架模式,更加印证了DIV+CSS是大势所趋。(5CSS的极大优势表现在简洁的代码,对于一个大型网站来说,可以节省大量带,,而且众所周知,搜索引擎喜欢清洁的代码。(6)表现和结构分离,在团队开发中更容易分工合作而减少相互关联性。简单来说:页面加载速度快、布局灵活。

Table布局页面的缺点:Table布局的缺点是比其它html标记占更多的字节,会阻挡浏览器渲染引擎的渲染顺序,会影响其内部的某些布局属性的生效,但是其优点就是用table做表格是完全正确的。

3、采用Gzip技术对网页进行压缩

Gzip技术:GZIP最早由Jean-loup GaillyMark Adler创建,用于UNIX系统的文件压缩。我们在Linux中经常会用到后缀为.gz的文件,它们就是GZIP格式的。现今已经成为Internet 上使用非常普遍的一种数据压缩格式,或者说一种文件格式。HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术。大流量的WEB站点常常使用GZIP压缩技术来让用户感受更快的速度。这一般是指WWW服务器中安装的一个功能,当有人来访问这个服务器中的网站时,服务器中的这个功能就将网页内容压缩后传输到来访的电脑浏览器中显示出来。一般对纯文本内容可压缩到原大小的40%。这样传输就快了,效果就是你点击网址后会很快的显示出来,当然这也会增加服务器的负载,一般服务器中都安装有这个功能模块的。

 采用Gzip技术对网页进行压缩是减少网页体积的一个很好的方式,一般情况下这是需要你的网站空间支持的,像我用的A5的合租主机,压缩率可以达到80%。网页体积小了,自然加载速度就快了。

4CDN加速

CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。

5、优化代码,减少臃肿结构

代码优化主要解决的题目就是页面浏览速度和适应性目的。

6、减少图片大小和数量

网页中一般应用两种格局的图片jpeggif,这两种图片的应用良多人掌握的并不是很好,jpeg合用于颜色比较多、构成比较复杂的图片(好比一些照片、渐变颜色等等),gif合用于颜色比较少、构成比较简朴的图片(好比网站的logo、大的色块构成的图片等等)Gif图片尤其要留意导出的时候选择颜色数量这样也会达到很好的减小尺寸的效果。对于一些比较大的图片我们还可以将它切割成比较小的图片进行拼接这样也可以进步网页的下载速度。减小网页 size进步网页下载速度还有一种简易的方法就是使用一些网页减肥的小工具,我们可以去下载一些这样的工具他们可以使你的网页缩小20%50%达到事半功倍的效果。

7、减少JavaScript脚本文件,尽量存放在一个文件中

8、网站建设中目录结构优化

现在良多网站都将所有的页面零散的放在统一个文件夹下而没有分类,这样做固然可以但是会对以后的维护等工作带来很大的麻烦。我们建议应该是建立一个大文件夹,里边包括各个频道的文件夹、网页页面图片文件夹、网页内容图片文件夹等等一个一个的单独种别的文件夹,使得在维护时候可以利便的找到每一个页面的详细位置。

9、网站建设中针对搜索引擎的优化

搜索引擎优化是良多人都知道的一种优化项目,也是完整的优化工作必不可少的一个步骤。 “枢纽字”在搜索引擎这个话题里是一个核心的字眼,几乎所有的针对搜索引擎优化题目都是围绕着“枢纽字”展开的。有良多人盲目的追求在网页中处处体现枢纽字,觉得这样就会更轻易被搜索引擎搜到,实在这样做并不一定合适。好比前一阵子流行过的“鬼影秘笈”,方法就是用和网页背景相同的颜色在页面中躲藏了良多枢纽字,良多人现在还在用这个方法,但是跟着搜索引擎功能越来越强盛这个方法已经不那么好用了,甚至会起到反作用。

10、运用静态的HTML页面众所周知,ASPPHPJSP等顺序完成了网页信息的静态交互,运转起来确实十分方便,由于它们的数据交互性好,能很方便地存取、更改数据库的内容,但是这类顺序也有本人的缺陷,那就是它必需由效劳器先生成HTML页面,然后在“传送”给用户,多了一个步骤,必定会影响到网站的拜访速度,所以笔者建议,在新站开端的时分,在对本人网站的重要调查期内还是采用静态的HTML页面比拟保险。

11、将ASPASPXPHP等文件的访问改为.js引用

这在ASPASPXPHP等程序设计时应该注意的,如果要在静态的HTML页面里嵌入动态的数据,而这些动态的数据是由ASPPHP等程序来提供的话,会使用以下的语句引用:

<script src="http://image.ccidnet.com/ad_files/network_index.asp?orders=1"></script>

这样的话,每次有一个人访问你的网站,服务器就要执行并处理一次network_index.asp文件,从数据库抽取相应的数据,再输出给网页显示,如果有几万个人同时访问,就要执行几万次,后果就可想而知。建议在这些程序中将数据动态生成到一个network_index.js文件中去,然后在首页通过

<script src="http://www.179job.com/ad_files/home_daohang/network_index.js"></script>

这样的代码来引用该network_index.js文件。这样,数据显示的任务就交给客户端的浏览器去做,不会耗费服务器的资源,显示速度自然就很快;前者所花的时间几乎是后者的几倍!

12Ajax调用尽量采用GET方法调用

实际使用XMLHttpRequest时,如果使用POST方法实现,会发生2HTTP请求,而使用GET方法只会发生1HTTP请求。如果改用GET方法,HTTP请求减少50%

13、减少页面中的HTTP请求数量

比较直接的理解就是要减少调用其他页面、文件的数量。

A.我们在使用css格式控制的时候,经常会采用background载入很多图形文件,每个background的图像至少产生1HTTP请求,一般我们为了让页面生动活泼会大量使用background来加载背景图,要改善这个状况,可以采用css1个有用的background-position属性来加载背景图,我们将需要频繁加载的多个图片合成为1个单独的图片,需要加载时,采用以下形式加载即可将这部分图片加载的HTTP请求缩减为1个。

B.采用Image maps,这个方法也比较常用,只是限于同1个区域使用。

C.Inline images,这个方法很少见到,但对于很小很简单的图像却是很实用的,相关语法标准参照:tools.ietf.org/html/rfc2397

14、添加文件过期或者缓存头

对于同一用户频繁访问的图片、Js脚本文件等可以在ApacheNginx设置其缓冲 时间,例如设置24小时过期时间,这样用户在访问过该页面之后再次访问时,同一组图片或JS不会再重复下载,从而减少了HTTP请求,用户访问速度明显有 所提升,同时服务器负载也会下降。

15、避免采用301302转向

301重定向主要是用于在域名的更改或者不带www的域名定向到带www的域名上,而302重定向可能我们的了解就比较少了,302重定向又称之为302代表暂时性转移,英文叫法为302 redirect,可以理解为暂时或者临时重定向。表示一个页面只是临时的搬到另一个页面上,从一些经验老道的SEO高手处得知,302重定向还有内部和外部之分,同一个域名中两个不同的页面之间的的临时重定向,这个成为为内部的临时重定向。另一种则是在不同的域名之间做临时的重定向,这种称为外部临时重定向。然而,基本上所有的搜索引擎都只把它定义为内部的302重定向。对此,如果是内部的302重定向搜索引擎并不会删除搜索结果中旧的页面。

301重定向被认为是目前域名更改后以最友好的方式展现给搜索引擎,也是业内用得最多的。在部落的网站中,之前有写过很多关于301的文章,比如301重定向是否成功的验证方法和wordpress博客301重定向失效的解决办法这两篇文章,其中包括实现的具体方法和其中出现的一些问题的处理方式,您都可以参考一下,具体就不再多讲。这里补充说明一下的是301重定向后到百度的反应时间需要多久,也是很多站长都关注的问题,而百度Lee给出的说法是:“网页的301跳转是受Spider网页更新周期制约的,这个更新周期目前来说可能比较长,我们也致力改进它”。很明显,这是一个很模糊的说法。

目前有部分站长将302 重定向应用到黑帽技术上,利用302的外部重定向来进行“302劫持”,即将别人的内容劫持到自的页面上,来获得更好的权重,这些一般是在交换您的友情链接上需要注意的事情。

如果您是进行新旧域名的替换,那么302重定向与301重定向的效果是一样的,并且都可以将旧域名的权重传递到新域名上,然而302却是以另外的方式——PR劫持来实现的。实现过程如下:

如果A302临时重定向到BA随时有可能改变主意显示本身或者做其他改变,那么当Googlebot(当然也包括Baiduspider)等搜身引擎蜘蛛抓取A的时候,实际上抓取的是目标地址B的内容,这样就导致AB不同的地址有完全相同的内容,并且都被编入了索引,被认为是“利用重复的内容来干扰Google搜索结果的网站排名”,网站受到惩罚也是在情理之中。

注:

302跳转是暂时的跳转,搜索引擎会抓取新的内容而保留旧的网址。因为服务器返回302代码,搜索引擎认为新的网址只是暂时的。

301重定向是永久的重定向,搜索引擎在抓取新内容的同时也将旧的网址替换为重定向之后的网址。

16、当页面内容庞大到一定程度,可以采用分页的方式展现

17、缩减iframe的使用,如无必要,尽量不要使用

18、使用多域名负载网页内的多个文件、图片

记得有资料说明,IE在网页载入过程中,在同1时刻,对同1域名并行加的HTTP请求数 量最高为2个,如果网页需要加载的文件数量超过2(通常远远超过..),要加快网页访问速度,最好将文件分布到多个域名,例如19楼,其js文件采用独 立的域名,据说百度的图片服务器数量在20台以上。

19、把你的 .js 库文件地址替换成 Google CDN的地址

(google apis目前在中国地区访问不是很稳定,不是很建议使用这条。)

随着 jquery mootools js库的使用需要加载的.js文件越来越多也越来越大,通常传统的网站是上传到网站本身的目录。但对于一个接近70KBjquery.js体积确实不利于网站响应速度的提升,此时就应该使用Google API .

把你的 http://www.cnblogs.com/jquery.x.x.js 替换为 http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js的意义在于当一个用户访问过使用 google api 的网站之后,再次访问其他调用了该api地址的网站就不需要再次加载该文件了。从而达到提速的目的。

不单是jquery库,其他诸如mootools  yui 也可以使用这种方式。

推荐一个网站 ( http://scriptsrc.net/  ) 这个网站收集Google 提供的 js API路径。直接点击复制就可以获取到最新版的文件路径。

20、使用多域名负载网页内的多个文件、图片,特别是外部调用的cssjs文件

21、合理使用Flush

用户端发送浏览请求后,服务器端一般要花销200-500ms去处理这些请求,在此期间,用户端浏览器处于等待状态,如果要减少用户等待时间,可以在适当的位置使用flush,将已经就绪的内容推送到用户端。

22、Ajax采用缓存调用

这个的使用可以参照Discuz论坛代码,里面对于大量使用的Ajax调用都采用了缓存 调用方式,一般采用附加特征参数方式实现,

23、配置ETags

设置配置的推荐网站博客:http://www.cnblogs.com/chenxizhang/archive/2013/05/11/3072898.html

24、养成良好的开发维护习惯,尽量避免脚本重复调用

当前更新的css库和js库比较多,而且版本设置也相当多,所以使用的库的文件加载注意不能多次调用一个类库的不同版本。

二、自己开发经验中的一些积累

1、加载使用第三方类库,使用源址连接

这样做的好处是让第三方文件的加载提交给第三方网站服务器的一些资源,从而减少了本服务器的加载和解析的负载压力,从而提高了网站加载速度。

2、尽量减少网站根目录的文件层次深度

猜你喜欢

转载自blog.csdn.net/Dangdangcyuyan/article/details/52074078