提高你博客性能的十条建议
作者:dudo 来源:dudo博客 发布时间:2008-05-28 13:52:00
对于服务器租用者来说,要想在硬件环境、网络环境等来改善自身网站性能,受客观因素的影响可能会有比较大的难度。因此,只能退而求其次,在程序上狠下功夫。对于独立博客站长来说,使用的博客程序一般都是比较成熟的发行版的程序,这些程序为了适用的广泛性往往在代码中留出了很大的改进余地,因此,我们可以在这上面下一些功夫。
在前面的文章中,我又系列的文章来讲述如何提高网站性能的最佳体验,同时还提供了一款Yahoo!推出的工具YSlow来提高网站性能,在参考这些原则的基础上,我针对PJBlog博客程序(其它独立博客程序和网站也可作为参考)为例说一下改进方法:
合并JavaScript文件。无论是在PJBlog还是其它的博客程序中,都使用了大量的外部JavaScript文件,要知道,引入一个外部文件都要发送一个HTTP请求,而在所有影响页面响应速度的因素中,HTTP请求是最关键的一个,因此把所有的JavaScrip文件合并到一个 javascript.js的文件中是一个很好的做法。不过,你要注意不同的JavaScript文件中使用了不同的变量和函数名称,你要保证它们合并之后还能正常工作。在某些情况下,你也可以有两个独立的JavaScript文件;
精减你的JavaScript文件。合并JavaScript文件是为了减少HTTP请求次数,但是基本上不会在体积上有所改观,所以你还需要精简掉JavaScript文件中那些没有用的东西,比如注释、换行、空白等,这大概会使你的程序缩小20%~30%的空间。你可以使用ESC 1.14对文件进行压缩,它的压缩率高达60%以上,对于减少响应大小、提高响应速度来说大有裨益;
合并CSS文件与精减CSS文件。和处理JavaScript文件一样,把所有的CSS文件合并到一个style.css中,CSS比JavaScript好处理的一点就是它冲突的机率较小,即便有冲突也不会是大问题。精简就去掉多余的样式化的格式,把所有的CSS规则都放到一行中。这款叫作Minify的程序不但可以压缩CSS还可以压缩JavaScript和PHP程序。不过这里要提醒的是,如果你要合并和精简文件一定要保留原来的文件以便以后程序更改时使用。
使用CSS Sprites。所谓的CSS Sprites就是所有CSS中用来做背景图像的图片文件都放到一个文件中。在PJBlog以及其它博客程序的皮肤中,作者很多都没有使用CSS Sprites,这样造成每出现一次background规则都要发送一次HTTP请求,而如果使用CSS Sprites则只需要一次HTTP请求,节省不必要的开支。
使用缓存。对于静态内容(如Flash、JavaScript、CSS、Image)通过加上Expires头或者Cache-Control来把它们缓存到客户端,这样用户在下次访问的时候就可以不用下载这样内容了,这样减少了HTTP请求的次数又减少了下载文件的大小。在IIS中设置文件头很简单,在你要设置的文件或者文件夹上右键点击——属性——HTTP头,然后勾中“启用文件过期”,设定过期时间,可以是一年或者十年等,还可以指定某个未来的时间,如2010年等。不过你一但设置了HTTP头,如果你要对文件作出修改你需为修改过的文件重新起一个名字。
启用Gzip压缩。Gzip压缩针对JavaScript、CSS等内容一种压缩技术,它能大大减少文件的体积提高传输速率,精简JavaScript和CSS只是去除不必要的内容,而Gzip压缩则是将文件在服务器端打包、在客户端解包的过程。Apache和IIS6.0都内置了Gzip技术,现代浏览器都支持Gzip技术(即使不支持它也会告诉服务器不要打包),因此可以放心使用。在IIS6.0中你需要简单配置之后才能使用Gzip技术,而在Apache 1.3中要启用mod_zip,在Apache 2.x使用moflate。Gzip大概可以节省70%的传输空间,目前互联网中有90%浏览器资料支持Gzip传输。
把JavaSCript文件放在文档的最末尾,而把CSS文件放在<head>之间。CSS放在<head/>之间会加快文档下载。在Yahoo!的研究中发现,如果你把一个CSS文件置于文档内部,当浏览器加载到这个样式表时会终止所有文件的下载而单独下载它(一般的下载浏览器使用并行下载模式),这是因为浏览器在下载到一个CSS文件后都要根据CSS内的规则重绘屏幕,这还会导致用户出现白屏。所以要把你所有的样式文件都放在最开始。而把JavaScript文件放于末尾下载,一方面可以使用户首先获得文档内容,另一方面JavaScript文件的下载和其它文件不同,它不能和其它文件同时下载,所有的JavaScript文件只有单独一个一个下载。所以在不影响使用的情况下,JavaScript文件要放在末尾加载。
CSS和JavaScript文档要成为独立的外部文件。这是因为浏览器加载使用的是并行模式,一次可以加载多个内容,把CSS和JavaScript作为单独文件不但可以减小HTML文档的大小,而可以加快下载效率。
使用少量的域名。一般来说一个页面引用的文件(图片、Flash、CSS、JavaScript)不能多于四个主机,因为每多出一个域名就意味着多一个DNS的查找,在浏览器查找DNS信息的过程中,浏览器由于不知道要访问的IP地址是什么,所以它什么都不做,只是在等待,所以DNS查找的次数越少,响应速度就越快。
避免CSS中使用Expression。虽然功能很强大,但是它的计算频率太高,影响网站的整体性能。对于一个CSS Expression来说,即使你滚动一下屏幕它都要重新计算一次,甚至你移到一次鼠标它都要重新计算,所有一个CSS Express在页面中计算10000次是很容易的事情。
空间和网络的因素我们很难左右,但是程序本身的性能还需要改进的地方。看看你的博客在提高性能方面是否还有需要改进的地方呢?
猜你喜欢
- 本文以docker-compose 搭建高可用Redis 主从、哨兵集群为例子关于redis主从,哨兵集群原理参见:Redis 单机安装/
- 一次在网上闲逛,突然看到论坛有一条消息说有一种方法,可以让已经关闭的Linux机器继续运行ipchains,并且让这台机器继续实现防火墙的功
- 漫游(Manyou)开放平台是康盛创想(Comsenz)为第三方应用开发者提供的开放平台。漫游开放平台一端联系着数百个第三方应用开发者,一端
- 前言日常使用 VIM 的时候经常有跳转到特定目录下某个文件的需求:使用 vimwiki 记笔记时会默认把所有笔记保存在目录 ~/vimwik
- 前言最近项目要求,需要一台服务器,阿里和腾讯都不错,我选择了腾讯云,系统为CentOS 7(linux)。记录搭建服务器的过程,方便以后再次
- 试验环境1.一台安装有RHEL5的计算机;2.系统安装盘;试验内容1.安装nfs软件包2.配置nfs服务器3.nfs服务器管理4.客户端测试
- 怎样登陆Account Manager呢?你可以从你的Account Manager里管理你的产品及服务里的很多设置。&
- 有必要给热心站长讲解发布文章的基本办法,以提高收录命中率,获得宝贵的初始流量。 提高引擎有效收录,其中最
- 在生产中可能会由于误操作而删除了某一用户的家目录,这时就需要把用户的家目录安装创建新用户时的模板文件,再恢复并且要跟之前的权限相同。1. 创
- 因为使用了3389登录服务器后没有及时注销或者其他情况而泛起再次登陆时提示:终端服务器超出了最大答应连接数。解决这个现像的办法有好多,例如百
- 北京时间10月28日消息,据国外媒体报道,Facebook昨日召开了年度Facebook 开发者大会,表示Facebook用户十分热衷于游戏
- linux systemd什么是 systemdLinux 系统在启动过程中,内核完成初始化以后,由内核第一个启动的程序便是 init 程序
- 个人认为不管做什么网站一定要有特色,E文网站也是一样。先简单阐述下做网站的几个关键,也许大家听起来觉的很简单,但是大家可以认真想下你做到没。
- 随着互联网的发展,传统媒体(报纸、杂志)也陆续登上互联网的舞台。受制于传统媒体的用户群,传统的阅读习惯已根深蒂固,传统媒体的网络化是否还能抓
- 在新安装的Linux系统命令行下,敲入:ifconfig,显示如下界面。上面这张图显示网卡没有启动,那么我们敲入代码:ifup eth0启动
- Google AdSense英文关键词价格要远远高于中文关键词,初略观察,有实力的同学,做英文站也许是这个经济形式下的一个不错的选择。并不是
- 话不多说,直接进入主题:作SEO的都知道外链的重要性,然而当一个新手踏入这个行业或者说进入这一领域的时候.最大的问题恐怕就在于如何取得外链,
- 从事互联网多年,积累了些许“概念”,现一一罗列,供大家参考:平铺和翻滚: 网站获得流量有两种方法,一是平铺,二是翻滚。平铺又可分为搜索引擎平
- 春节还没过完就接到同事的电话,说论坛访问速度慢,遭致用户强烈的投诉,要求我马上处理。这个bbs是运行在RedhatAS5上,由apache、
- 1 安装邮件列表程序apt-get install mailman2 修改配置 /etc/mailman/mm_cfg.py 此服务器采用e