`

提高你博客性能的十条建议

阅读更多

提高你博客性能的十条建议

       对于服务器租用者来说,要想在硬件环境、网络环境等来改善自身网站性能,受客观因素的影响可能会有比较大的难度。因此,只能退而求其次,在程序上狠下功夫。对于独立博客站长来说,使用的博客程序一般都是比较成熟的发行版的程序,这些程序为了适用的广泛性往往在代码中留出了很大的改进余地,因此,我们可以 在这上面下一些功夫。

我针对PJBlog博客程序(其它独立博客程序和网站也可作为参考)为例说一下改进方法:

1. 合并JavaScript文件。无论是在PJBlog还是其它的博客程序中,都使用了大量的外部JavaScript文件,要知道,引入一个外部文件都要 发送一个HTTP请求,而在所有影响页面响应速度的因素中,HTTP请求是最关键的一个,因此把所有的JavaScrip文件合并到一个 javascript.js的文件中是一个很好的做法。不过,你要注意不同的JavaScript文件中使用了不同的变量和函数名称,你要保证它们合并之 后还能正常工作。在某些情况下,你也可以有两个独立的JavaScript文件;

2. 精减你的JavaScript文件。合并 JavaScript文件是为了减少HTTP请求次数,但是基本上不会在体积上有所改观,所以你还需要精简掉JavaScript文件中那些没有用的东 西,比如注释、换行、空白等,这大概会使你的程序缩小20%~30%的空间。你可以使用ESC 1.14对文件进行压缩,它的压缩率高达60%以上,对于减少响应大小、提高响应速度来说大有裨益;

3. 合并CSS文件与精减CSS文件。和处理JavaScript文件一样,把所有的CSS文件合并到一个style.css中,CSS比 JavaScript 好处理的一点就是它冲突的机率较小,即便有冲突也不会是大问题。精简就去掉多余的样式化的格式,把所有的CSS规则都放到一行中。这款叫作Minify的 程序不但可以压缩CSS还可以压缩JavaScript和PHP程序。不过这里要提醒的是,如果你要合并和精简文件一定要保留原来的文件以便以后程序更改时使用。

4. 使用CSS Spirites。所谓的CSS Spirites就是所有CSS中用来做背景图像的图片文件都放到一个文件中。在PJBlog以及其它博客程序的皮肤中,作者很多都没有使用CSS Spirites,这样造成每出现一次background规则都要发送一次HTTP请求,而如果使用CSS Spirites则只需要一次HTTP请求,节省不必要的开支。

5. 使用缓存。对于静态内容(如Flash、 JavaScript、CSS、Image)通过加上Expires头或者Cache-Control来把它们缓存到客户端,这样用户在下次访问的时候就 可以不用下载这样内容了,这样减少了HTTP请求的次数又减少了下载文件的大小。在IIS中设置文件头很简单,在你要设置的文件或者文件夹上右键点击—— 属性——HTTP头,然后勾中“启用文件过期”,设定过期时间,可以是一年或者十年等,还可以指定某个未来的时间,如2010年等。不过你一但设置了 HTTP头,如果你要对文件作出修改你需为修改过的文件重新起一个名字。

6. 启用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传输。

7. 把JavaSCript 文件放在文档的最末尾,而把CSS文件放在<head>之间。CSS放在<head/>之间会加快文档下载。在Yahoo!的研 究中发现,如果你把一个CSS文件置于文档内部,当浏览器加载到这个样式表时会终止所有文件的下载而单独下载它(一般的下载浏览器使用并行下载模式),这 是因为浏览器在下载到一个CSS文件后都要根据CSS内的规则重绘屏幕,这还会导致用户出现白屏。所以要把你所有的样式文件都放在最开始。而把 JavaScript文件放于末尾下载,一方面可以使用户首先获得文档内容,另一方面JavaScript文件的下载和其它文件不同,它不能和其它文件同 时下载,所有的JavaScript文件只有单独一个一个下载。所以在不影响使用的情况下,JavaScript文件要放在末尾加载。

8. CSS和JavaScript文档要成为独立的外部文件。这是因为浏览器加载使用的是并行模式,一次可以加载多个内容,把CSS和JavaScript作为单独文件不但可以减小HTML文档的大小,而可以加快下载效率。

9. 使用少量的域名。一般来说一个页面引用的文件(图片、Flash、CSS、JavaScript)不能多于四个主机,因为每多出一个域名就意味着多一个 DNS的查找,在浏览器查找DNS信息的过程中,浏览器由于不知道要访问的IP地址是什么,所以它什么都不做,只是在等待,所以DNS查找的次数越少,响 应速度就越快。

   10. 避免CSS中使用Expression。虽然功能很强大,但是它的计算频率太高,影响网站的整体性能。对于一个CSS Expression来说,即使你滚动一下屏幕它都要重新计算一次,甚至你移到一次鼠标它都要重新计算,所有一个CSS Express在页面中计算10000次是很容易的事情。

    空间和网络的因素我们很难左右,但是程序本身的性能还需要改进的地方。看看你的博客在提高性能方面是否还有需要改进的地方呢?

分享到:
评论

相关推荐

    2D硬件加速性能分析工具

    对于遇到的问题,如无法运行多线程测试、无法显示测试窗口或出现错误,可以参考相关博客文章和论坛讨论,如“Unixbench的使用”和“UnixBench图形化性能测试”。这些资源通常包含解决问题的技巧和建议,例如调整系统...

    图灵图书博客文章 pdf

    10. **C++编程的175条“军规”**:这份清单列出了C++编程中应该遵守的规则和建议,旨在避免常见错误,提高代码质量和可读性。 11. **资深SAP专家谈如何深入SAP开发**:对于SAP系统开发者,这部分内容提供了深入SAP...

    写给学习C++的朋友50条建议

    根据给定的信息,“写给学习C++的朋友50条建议”主要针对初学者和有一定基础的学习者提供了关于如何高效、系统地学习C++语言的指导。以下是对这些知识点的详细解析: ### 1. C++与C的关系 C++是在C的基础上发展...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    博客个人文章管理维护功能(7) 博客个人文章分类管理维护功能(8) 博客个人友情链接维护功能(9) 博客个人基本信息管理维护功能(10) 博客图片上传及个人相册管理(11) 网络用户写留言,博主查看留言。 第二章 系统设计 ...

    Android应用源码之listview快速滑动,修改默认的滑动条.zip

    在Android开发中,ListView是常用的一种视图组件,用于展示大量数据列表。...在阅读提供的源码时,建议结合Android官方文档和相关博客文章,加深对原理的理解,并尝试在自己的项目中应用这些技术。

    给C++初学者的忠告

    - **建议**:勇于承认自己的不足,并积极向他人请教,这种态度会让你受益匪浅。 #### 19. 持续关注C++标准的变化 - **解释**:C++标准每隔几年就会更新一次,了解最新的变化对于保持技术领先非常重要。 - **建议**...

    WordPress静态化插件WP-Super-Cache

    这个是说在你的 footer 显示一条信息告诉读者该博客已经缓存了,一般不要这样做。 Clear all cache files when a post or page is published. (This may significantly slow down saving of posts.) 这个是说发布新...

    学习c++的五十条公告

    根据“学习C++的五十条公告”这一主题及其描述,“对你坚持走程序之路绝对有用!很多程序经验丰富的人的总结!”我们可以提炼出一系列重要的C++学习知识点和建议。以下是对这些知识点的详细阐述: ### 1. C++与C的...

    使用Lucene4.7实现搜索功能,分页+高亮

    标题中的“使用Lucene4.7实现搜索功能,分页+高亮”表明我们要讨论的是如何利用Apache Lucene 4.7版本来构建一个具备搜索、分页和...如果你需要更深入的代码示例或指导,建议直接访问提供的博客链接以获取更多信息。

    CAD-2020.zip

    10. **移动设备支持**:AutoCAD 2020也推出了移动端应用,让用户可以在平板电脑或手机上查看和编辑CAD文件,随时随地进行设计工作。 在"CAD-2020.zip"这个压缩包中,可能包含了AutoCAD 2020的安装程序、教程、示例...

    61.(leaflet篇)leaflet线段中间叠加内容(虚线).zip

    例如,`{strokeDasharray: "10,5"}`将创建一个每10像素显示实线,然后空5像素的虚线效果。这可以在创建Polyline对象时作为options传递,或者在后期通过`setStyle`方法更新。 3. **在线条中间叠加内容**: 在线段...

    MSDN Library - October 2001 &&MFC类库详解.chm

    - 主动分享经验:通过博客、社交媒体等方式分享自己的学习心得和技术经验。 综上所述,充分利用MSDN Library、提高英语水平、加强个人管理、撰写高质量文档、规范代码风格、掌握调试技巧、自我测试以及积极交流与...

    使用poi导文档的简单模板

    标题中的“使用poi导文档的简单模板”指的是Apache POI库在Java中用于创建和操作Microsoft Office格式文件,特别是Excel文档的一种方法。...如果你想要深入学习,建议直接访问提供的博客链接获取详细步骤和代码示例。

    神经网络与深度学习python源码提升方法

    深度学习则是建立在多层神经网络基础上的一种机器学习技术,通过层次化的特征提取来提高模型的性能。 #### Python源码提升方法 为了更好地理解和应用神经网络与深度学习技术,掌握相关的Python编程技巧至关重要。...

    asp网站RSS代码

    9. **缓存策略**:为了提高性能,可以考虑实现缓存机制。例如,将生成的RSS XML保存在服务器上,一段时间内如果数据未更新,就直接返回缓存的文件,而不是每次都动态生成。 10. **安全性**:确保在处理用户请求和...

    43个你应当避免的Web设计错误

    - **知识点解析**:CSS优化可以显著提高网站的性能。例如,将多个CSS文件合并为一个文件、移除未使用的样式规则以及压缩代码都是提高加载速度的有效方法。 #### 19. 忽视安全性 - **知识点解析**:确保网站安全是...

    This repository contains all the popular Competitive Progr.zip

    10. **编程竞赛经验分享**:可能包括作者或他人参与竞赛的经验、心得,以及如何准备和应对比赛的建议。 总的来说,这个压缩包对于想提升编程能力,特别是参与编程竞赛的人来说,是一份非常宝贵的资源。通过学习和...

    JSP_page.zip_jsp分页_jsp实现分页_page

    // 每页显示10条记录 int totalPages = (totalRecords + recordsPerPage - 1) / recordsPerPage; ``` 2. 获取当前页数:通常从请求参数中获取,如`pageNo`。 ```java int currentPage = request.getParameter(...

    Hadoop在雅虎的应用

    - **应用场景:**优化网页、博客等内容,提高用户体验;同时对邮件进行过滤,减少垃圾邮件。 - **处理规模:**处理4.5亿个邮箱账户,每天处理50亿封邮件,处理25亿次连接请求。 **4. Web图谱分析** - **应用场景:...

    .htaccess

    百度首页 | 百度空间 | 登录 广告停放提高网站流量,centos学习 主页博客相册|个人档案 查看文章 .htaccess怎么用2007-05-16 14:04(文章来源)...这里有一篇很容易让人理解的.htaccess介绍,作为入门文章非常的适合...

Global site tag (gtag.js) - Google Analytics