当前位置:首页 » 好文分享 » 详情

专家教你为网站加速

李明近日为提高博客访问速度已做了不少优化措施,包括更换一套简洁模板和使用CDN加速等等,效果真的不错,经常到访小博的朋友应该感受到的,但怎样才能真正有效地为网站加速,还是请专家教你为网站加速吧!

大家也知道站打开速度就是等于加载一页网页的时间,加载一页网页的时间有80%是花在浏览器的工作上,这些工作其实可以透过简单的优化来删除掉,从而大幅提高网站的效率,我们不妨看一看专家对提高网站速度有什么建议。

1.尽量减少发出 HTTP 请求:网页上各式各样的 JavaScript、CSS、图像、Flash 等占去了浏览器大部分的工作,所以减少网页中需要下载的元件,从而减少发出 HTTP 请求,是优化网站的最重要一步。方法是合拼多个 JavaScript 和 CSS 档案,利用「CSS 精灵」技术等。

2.把内容分散到不同的伺服器: 把所有内容从一个伺服器送出,显然会做成瓶颈效应,既加重伺服器的负担,也增加伺服 器周边网络的负担,对于大型的网站最理想的作法是在世界各地设立区域性的伺服器,减少网络挤塞现象,至于较小型的公司则可以光顾商业性的「内容传送网络」 服务供应商。更小型甚至个人网站又如何呢?可以尝试把静态的内容分离出来,从应用伺服器移到另一台伺服器。

3.每一项内容都注明到期日期: 为了避免访客经常重复下载网站内不常改动的内容,我们应该为每一项内容注明到期日期,浏览器会把未过期的内容放在缓存区,节省了不必要的 HTTP 请求。图像是最值得使用这个技巧的内容,不过其他内容包括 JavaScript、CSS、Flash 等在可能的情况下也应该尽量使用。

4.把内容用 Gzip 压缩: 任何文本内容都应该在发送前用 Gzip 压缩,包括 HTML、JavaScript、CSS,甚至 XML 和 JSON,一般来说可以节约 70% 的频宽,现代的浏览器都支援 Gzip 压缩的内容,少数亦支援 deflate。不过图像和 PDF 的档案却不要压缩,因为他们本身的编码方法已经压缩,额外的压缩程序可以说没有任何帮助,反而会增加伺服器和浏览器的工作量。

5.把 CSS 放在网页的开始位置: 这样做让浏览器可以渐进式显示页面,无须等待整个网页下载完毕才显示。以 IE 来说,只有当所有 CSS 档案下载完毕它才开始显示页面,以免万一 CSS 的最终设定与开始时不同,IE 需要把画面重新调整,所以把 CSS 放在最前面的位置有助 IE 尽早开始显示页面。Firefox 虽然无需等待所有 CSS 下载完成才显示页面,但若果它发现 CSS 的最终设定与开始时不同,它会把画面重新整理,换句话说访客有机会在开始的时候看到非最终版本的页面。总之,把 CSS 放在最前面的位置对两个浏览器都是最佳的安排。

6.把 JavaScript 放在网页的最底位置:跟 CSS 的问题差不多,JavaScript 也会阻挡流灠器渐进式显示页面,但是解决的方法却刚好相反,因为浏览器会把 JavaScript 以后的内容暂停显示,直至 JavaScript 下载完毕,所以 JavaScript 放在越后的位置越好。

7.不要使用 CSS 表达式: 这是 IE 独有的功能,在 CSS 中加入动态表达式可以制作一些特别效果,例如背景颜色每分钟自动转换等,可惜 CSS 表达式不单只在显示页面时进行运算,当我们改变浏览器的大小、上下滚动页面、甚至鼠标在页面上移动也会引发这些表达式重复运算,次数达到数以万计!

8.把 CSS 和 JavaScript 放在外部档案: 这一点乍听起来似乎与前面建议的尽量减少 HTTP 请求有冲突,其实大部分的 CSS 和 JavaScript 都很少改动,硬把他们塞进网页中会引致网页太大,增加了下载的时间,反而把它们分离出来,浏览器可以利用缓存的 CSS 和 JavaScript 来节约频宽和时间,整体的效率反而提升。

9.尽量减少浏览器查阅 DNS: 网页的内容来自多个不同的伺服器,浏览器便要查阅 DNS 来读取每一个伺服器的 IP 地址,内容分散得越广泛,需要查阅 DNS 的次数便越多,虽然作业系统和浏览器会把得到的 IP 地址放在缓存,但缓存的时间一般不超过一小时,所以我们要尽量减少内容的分散程度。不过若果内容太集中的话,不单只违反了前面第二点原则,也令到平衡下载 内容的成效降低,Steve Souders 建议不要把内容分散在超过四个伺服器上。

10.压缩 JavaScript 档案:把 JavaScript 中的注释和空白字符删除,能大幅减小所占的空间,节约频宽和下载时间。JSMin 和 YUI Compressor 是其中两个比较受欢迎的 JavaScript 压缩工具。

11.避免使用重新导向: 重新导向一般是透过 HTTP 301 和 302 来实现的,目的是把浏览器从原来的网址引导向另一个网址,过程中浏览器提出了多个请求才能下载真正的网页,这种情况应尽量避免。若果你的网页更改了路径, 又不希望使用旧路径的用户的用户碰钉子,可以使用 Apache 的 Alias 或者 mod_rewrite 模组。此外,一个很常见却很少人知道的重新导向陷阱就是在 URL 的最后漏掉了「/」,例如在浏览器输入 https://anran.gs/T/seo(注意后面没有「/」),伺服器可能会把浏览器重新导向到https://anran.gs/T/seo/,解决的方法也是使用 Alias 或 mod_rewrite 模组,或者 Apache 的 DirectorySlash 指示。

12.避免重复的 JavaScript: 这个建议看来有点可笑,但在现实世界它出现的机会比我们想像的高得多,尤其是在开发人员众多的项目,与及项目中涉及的 JavaScript 互相依赖而错综复杂。IE 并不懂得分辨重复的 JavaScript,后果是同一个 JavaScript 被下载多次,每次都重新运算,浪费了大量的时间和资源,Firefox 虽然不会把同一个 JavaScript 重复下载,但却会重复运算。理想的解决方法是在应用系统中使用 JavaScript 管理模组,中央解决重复和互相依赖的问题。

13.正确配置 ETag:ETag 是 HTTP 用来判断一个网络资源(HTML 档案、一幅图像、JavaScript、获任何可以从伺服器上下载的内容)是否已经过期,它比 ExpiryDate 这个 HTTP 变量有更大的弹性,不过在丛集伺服器(server cluster)的环境中不正确配置 ETag 很容易得到反效果,若果你不打算使用 ETag 的验证模式,建议你关掉伺服器的 ETag 功能。

14.把 Ajax 的结果缓存:Ajax 其中一个主要好处是用户可以较迅速地得到回应,但若果我们不正确地使用 Ajax,用户仍未可以享用最优化的网络服务,前面提及的技巧很多都可以应用在 Ajax,包括 (3) 每一项内容都注明到期日期,(4) 把内容用 Gzip 压缩,(9) 尽量减少浏览器查阅 DNS,(10) 压缩 JavaScript 档案,(11) 避免使用重新导向,(13) 正确配置 ETag。其中第三点是最重要的,因为它直截了当地减少了 HTTP 请求。

大家看后去为网站做加速吧!这样不但提高网站打速度,还可提高用户体验和增加搜索引擎收录,对网站发展真的很有利的。
打赏
X
打赏方式:
  • 支付宝
  • 微信
  • QQ红包

打开支付宝扫一扫
日期:2014年09月06日 09:15:33 星期六   分类:好文分享   浏览(66008)   评论(21)
本文地址:https://www.blogs.hk/post-285.html   [百度已收录]
声明:本页信息由网友自行发布或来源于网络,真实性、合法性由发布人负责,请仔细甄别!本站只为传递信息,我们不做任何双方证明,也不承担任何法律责任。文章内容若侵犯你的权益,请联系本站删除!

留言咨询

自动获取QQ

昵称

邮箱

网址

12楼、晨风 [回复该留言]
2015-02-08 11:57
高手。。。
11楼、龙三公子 [回复该留言]
2014-09-15 10:15
我很想优化,但是有好些不是很懂啊。
10楼、蓝色悠悠 [回复该留言]
2014-09-07 12:00
在wordpress里有很多优化插件,可在emlog呢?我的200MB的空间快满了,未来的真的需要优化。
祝李明兄中秋节快乐!
9楼、姜辰 [回复该留言]
2014-09-07 00:36
我还是认为除了服务器问题外,网站简洁才是关键,没必要需要那么多特效,就像你前面介绍的那个特效,我个人认为就没啥用。
8楼、吴尼玛 [回复该留言]
2014-09-06 21:49
加张背景吧,白色我眼睛疼
李明 [回复该留言]
2014-09-06 21:51
@吴尼玛:试过了,但效果不太好,找到合适图片再试试,谢谢你的意见。
7楼、Wings Blog [回复该留言]
2014-09-06 20:45
怎么又换主题了
李明 [回复该留言]
2014-09-06 21:05
@Wings Blog:之前哪个主题加载速度太慢了,所以换成这个,速度如何?
Wings Blog [回复该留言]
2014-09-06 21:09
@李明:你在个没有图片,肯定快啦。话说你备案这么快就搞定了
李明 [回复该留言]
2014-09-06 21:13
@Wings Blog:还是没备案,我就是喜欢这主题较简洁,速度快了有利用户体验的,你的微信网站搞得不错,我每天也到访的。
6楼、 [回复该留言]
2014-09-06 17:20
事实上一个好的服务器才是关键
李明 [回复该留言]
2014-09-06 18:01
@劣:有道理,服务器不给力网站怎样优化也没效果的。
5楼、懿阁博客 [回复该留言]
2014-09-06 15:56
交流交流,多多指点,祝你生活愉快!

博客很有意思,欢迎来我的:懿阁博客
4楼、重生冻疮膏 [回复该留言]
2014-09-06 14:54
基本上都说到位了
3楼、靓女秀 [回复该留言]
2014-09-06 10:20
百度加速那个有没有用的
李明 [回复该留言]
2014-09-06 10:23
@靓女秀:有用的,只是我的域名没备案不能使用百度的CDN服务,但我也使用了百度的DNS服务,效果不错的。
2楼、梦轩丽人 [回复该留言]
2014-09-06 10:14
一般情况下,用一套简洁的模板和开启CDN加速就可以了,如果有可能选择一个好的主机尤为重要
李明 [回复该留言]
2014-09-06 10:18
@梦轩丽人:我也是用了一套简洁的模板和开启CDN加速,网站速度真的提升不少。
梦轩丽人 [回复该留言]
2014-09-06 10:22
@李明:我的移动版还没有空折腾,现在是用插件的,开启360首页和HTML缓存会出错,所以这两个都没有开加速,要不然就更快了。
李明 [回复该留言]
2014-09-06 10:26
@梦轩丽人:慢慢再折腾吧,你的站速度已超级快了,我暂时关掉手机版,将来会使用自适应模板。
1楼、微历史 [回复该留言]
2014-09-06 09:53
知道一些这个理论,但就是不会做

      Copyright © 2024 博客之家 版权所有  
      關於本站免責聲明sitemap新站登錄