`

使用Minify来优化网站性能

    博客分类:
  • web
 
阅读更多

Minify 是用PHP5开发的应用,通过遵循一些Yahoo的优化规则来提高网站的性能。它会合并多个CSS或者JavaScript文件,移除一些不必要的空格和 注释,进行gzip压缩,并且会设置浏览器的缓存头。Minify 在设计上和Yahoo的 Combo Handler Service非常像,不过Minify可以合并任何你想要合并的JavaScript和CSS文件。

一般情况下,网站速度的瓶颈都在前端,而最关键的就是资源的加载速度,但是大多数浏览器都有单个域名并发请求数限制,所以如果一个页面中存在很多的 资源,比如CSS和JavaScript文件,那么明显会降低网站的加载速度,比较好处理方式就是把多个文件通过一个请求来访问,这样既不会影响之前的文 件维护,又会减少资源的清楚数量,Minify就是为之而生。下面是一些被Minify采用的 Yahoo! 优化准则:

1、Make Fewer HTTP Requests

2、Add an Expires or a Cache-Control Header

3、Gzip Components

4、Minify JavaScript and CSS

5、Configure ETags

6、Keep Components under 25K

下面两幅图分别是启用Minify之前和启用Minify之后网站请求时间的一个对比,可以看出启用Minify之后,资源的加载时间从250ms减少到了125ms,总共节省了50%的时间。

特性:

合并多个CSS或JavaScript文件为一个文件,减少请求数量,并且进行minify处理

使用了多个开源的库,包括 JSMin.php ,Minify CSS,Minify HTML

服务端缓存(fils/APC/Memcache),可以避免不必要的重复处理

当浏览器存在资源的缓存,返回HTTP 304 Not Modified

多个文件合并时,自动生成URI

当开启服务端缓存的时候,在一般的服务器上Minify每秒可以处理几百个并发请求

根据请求头,开启Content-Encoding: gzip。在服务端缓存开启的情况下,Minify提供gzipped 文件速度比Apache’s mod_deflate模块要快

安装

下载最新的Minify,然后解压文件到”min” 文件夹

Copy “min” 文件夹到自己网站的DOCUMENT_ROOT下,如果想要Minify在子目录下工作,看这里

使用

假设网站域名是http://example.com,Minify安装在了虚拟主机的根目录下,那么访问http://example.com/min/,我们会看到一个“Minify URI Builder”,我们可以输入需要进行合并的文件URI,如下

点击Update之后,系统会自动生成一个合并后的URI:/min/?b=js&f=jquery-a.js,jquery- b.js,jquery-c.js。如果觉得URI太长,可以通过配置文件来指定group,编辑min目录下的groupsConfig.php文件, 加入以下内容:

 

return array(
'js' => array('//js/jquery-a.js', '//js/jquery-b.js', '//js/jquery-c.js'),//相对于DOCUMENT_ROOT
);

之后就可以通过/min/?g=js来访问了

Minify在资源首次被请求的时候,会对多个文件进行合并,gzip,去除空格,注释等处理,然后会把处理的结果进行缓存,默认情况下是进行文件缓存,缓存的key以minify_开头,修改min/config.php文件,配置缓存文件存放的位置:

$min_cachePath = '/tmp';

除了通过文件进行缓存之外,Minify还支持Memcache缓存,修改min/index.php文件,加入以下代码:

 

require 'lib/Minify/Cache/Memcache.php';
$memcache = new Memcache;
$memcache->connect('localhost', 11211);
$min_cachePath = new Minify_Cache_Memcache($memcache);

Minify支持两种debug方式,一种是通过firephp调试PHP错误,修改min/config.php文件,加入以下代码:

 

$min_errorLogger = true;

另一种是通过在URL中加入flag进行错误调试,在min/config.php中加入

 

$min_allowDebugFlag = true;

之后就能以http://example.com/min/f=jquery-a.js,jquery-b.js,jquery-c.js&debug=1方式进行调试了

参考:

http://code.google.com/p/minify/wiki/UserGuide

http://www.mrclay.org/2008/09/19/minify-21-on-mrclayorg/

分享到:
评论

相关推荐

    WordPress 部署 Minify方法 自动压缩合并 JS 和 CSS

    任何拥有PHP5环境的服务器都可以使用Minify来优化网站性能。这使得Minify成为一个非常灵活的工具,不仅可以应用于个人网站,也适用于企业项目和其他类型的开发工作。使用Minify可以有效地提高项目的加载速度和处理...

    Google minify使用指南

    Google Minify 是一个开源工具,用于压缩和合并JavaScript和CSS文件,以提高网页加载速度和性能。它通过去除空格、注释和不必要的字符来减小文件大小,从而减少网络传输的数据量,加快页面渲染时间。本指南将详细...

    网站性能优化1

    网站性能优化是提升用户体验、降低服务器负担的关键环节,尤其在当今互联网环境中,用户对网页加载速度有着极高的期待。本文将深入探讨网站性能优化的方案和原理,主要围绕"高性能网站建设指南(上1).pdf"这份资料...

    minify v2.1.4 beta,css/js 优化压缩工具.zip

    为此,开发者们常常使用各种工具来优化前端资源,其中minify v2.1.4 beta就是一款强大的CSS和JavaScript优化压缩工具。本文将深入探讨minify的功能、安装与使用方法,以及它如何提升网页性能。 minify的核心功能...

    大型网站性能优化方案

    在构建和运营大型网站的...总的来说,大型网站性能优化是一个系统工程,涉及前端、后端、网络等多个层面。通过科学的方法和持续的优化,我们可以让网站在提供丰富功能的同时,保持快速响应,带给用户流畅的浏览体验。

    minify_2.1.3.zip

    **Minify 2.1.3 - 压缩JavaScript和CSS工具** 在网页开发中,性能优化是一项至关重要的任务,尤其是对于大型网站和应用程序。...无论是个人开发者还是大型团队,都可以利用Minify来提升用户体验,优化网站性能。

    Laravel开发-html-minify

    除了HTML Minify,Laravel还提供了其他性能优化手段,如缓存、Eager Loading、路由缓存、Gzip压缩、CDN服务等。这些工具和策略结合使用,可以显著提升Laravel应用程序的响应速度和用户体验。 总之,"Laravel开发-...

    Laravel开发-laravel-minify-html

    在Laravel框架中,"Laravel开发-laravel-minify-html"是一个用于优化Web应用程序性能的工具,它专注于缩小HTML输出,以减少网络传输的数据量,加快页面加载速度。这个工具对于提升用户体验和搜索引擎优化(SEO)都至...

    开源项目-tdewolff-minify.zip

    总而言之,Tdewolff-Minify是优化前端资源的理想选择,它能够显著提升网站和应用的加载速度,改善用户体验,同时降低了服务器带宽的消耗。通过持续的维护和更新,这个开源项目保持了其在代码压缩领域的竞争力。

    Python库 | Flask_Minify-0.18-py3-none-any.whl

    在实际的Web开发中,Flask_Minify是一个非常实用的工具,可以帮助开发者优化前端性能,提升网站的加载速度,同时保持代码的整洁和管理的便捷。对于那些重视用户体验和SEO(搜索引擎优化)的项目来说,使用这样的库是...

    Go-Minify用Go编写的一个HTML资源缩小器包

    总的来说,Go-Minify是Go开发者在构建高性能Web应用时的一个强大工具,它可以帮助你有效地优化前端资源,提升用户体验,同时降低服务器负载。在实际使用中,可以结合其他构建工具如Gulp或Webpack,将Go-Minify集成到...

    Laravel开发-laravel-html-minify

    在Laravel框架中,"Laravel开发-laravel-html-minify"是一个用于优化应用程序性能的工具,特别是针对...同时,还可以结合其他前端优化技术,如CSS和JavaScript的压缩、图片优化以及利用CDN服务,进一步提升网站性能。

    PyPI 官网下载 | mkdocs-minify-plugin-0.2.2.tar.gz

    总的来说,`mkdocs-minify-plugin`是MkDocs生态系统中的重要组件,它通过自动压缩HTML、CSS和JS,帮助开发者优化网站性能,提升用户体验。对于那些重视文档质量和性能的项目,这是一个不容忽视的工具。随着版本的...

    前端开源库-rollup-plugin-minify

    总结来说,`rollup-plugin-minify`是Rollup生态系统中一个强大的工具,它结合了Rollup的模块优化能力与Uglify JS的压缩功能,帮助前端开发者创建更小、更高效的代码包,提高应用性能。通过正确配置和使用,你可以...

    uglify混淆js+minify压缩js.zip

    为了提高网站性能,开发者通常会采用两种技术:`uglify`混淆和`minify`压缩JS代码。 `uglify`是一个JavaScript混淆器,它的主要任务是将源代码转换为一种难以阅读的形式,同时保持其功能不变。这种混淆可以防止他人...

    前端开源库-html-minify-loader

    **前端开源库-html-minify-loader** 是一个专为前端开发者设计的Webpack加载器,它的主要功能是对HTML文件进行压缩和优化,以减少网页的加载时间,提高网站性能。这个加载器利用了名为 **minimize** 的开源库,该库...

    Laravel开发-minify

    总的来说,Laravel开发中的minify是一个关键的性能优化步骤,通过适当的配置和工具,可以显著提升你的Web应用的加载速度和用户体验。在实际开发中,务必根据项目需求和环境选择合适的minify策略。

    前端开源库-gulp-html-minify

    总之,**gulp-html-minify** 是前端开发中不可或缺的工具之一,它能够有效地帮助开发者优化HTML代码,提升网站性能。熟练掌握并运用这个插件,可以显著提高工作效率,同时也能保证项目代码的质量。

Global site tag (gtag.js) - Google Analytics