1.把你的 .js 库文件地址替换成 Google CDN的地址 ::
(google apis目前在中国地区访问不是很稳定,不是很建议使用这条。)
随着 jquery 和 mootools 等js库的使用需要加载的.js文件越来越多也越来越大,把你的 http://www.cnblogs.com/jquery.x.x.js 替换为 http://ajax.googleapis.com/
不单是jquery库,其他诸如mootools yui 也可以使用这种方式。
推荐一个网站 ( http://scriptsrc.net/ ) 这个网站收集Google 提供的 js API路径。直接点击复制就可以获取到最新版的文件路径。
2.精简和优化你的 js 和 CSS ::
虽然有了缓存和gzip保驾护航,但是对于 js 和 css 的优化却也是必须的。我们写的javascript脚本和 css 代码都是经过缩进和换行的,适合人类阅读,
推荐一个地址 ( http://scriptcode.info/)
此工具可以不用在本地安装jdk,直接上传 js 和 css 文件进行压缩,可选择是采用 YUI Compressor 或 Closure Compiler 。
通过 YUI Compressor 或 Closure Compiler 和 压缩的之后的代码如function hello(name) {
alert('hello 博客' + name);
}
hello('园');
它会变成
function hello(a){alert("hello 博客, "+a)}hello("园")
把你的缩进和空行去掉的同时也缩短里面的变量名称,这种优化方式是不可逆的,所以使用这两种压缩之前请备份一份源文件方便以后的修改。
3.GZIP 压缩你的 JS 和 CSS 文件 ::
压缩js和css可以通过服务器动态脚本进行也可以更简单的使用apache服务器可以在网站根目录 .htaccess 中加入以下代码
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-javascript application/jsonHeader append Vary Accept-Encoding
</IfModule>
这段代码的意思是调用服务器的压缩模块对以上文件输出之前进行G
4.缓存你的 js 和 CSS 文件 ::
在网站根目录 .htaccess 中加入以下代码
<ifmodule mod_expires.c>
<filesmatch "\.(jpg|gif|png|css|js)$">
ExpiresActive on
ExpiresDefault "access plus 1 year"
</filesmatch>
这段代码的意思是对 jpg|gif|png|css|js 发送 header 缓存头,进行一年的缓存、在浏览器不使用 ctrl+F5 强制刷新时,会一直缓存到时间时间结束,
5.使用css sprites合并图片
一个网站经常使用小图标和小图片进行美化,但是很遗憾这些小图片占用了大量的HTTP请求,因此可以采用sprites的方式把所有的图片合并成一张图片 ,http://csssprites.com/ 可以通过这个网址在线合并,也可以在ps中合并。
更多 css sprites 的资料请查看 http://baike.baidu.com/view/2173476.htm
6.优化你网站图片(图片)::
大量使用的图片和图标虽然可以给网站带来美轮美奂的效果,
http://www.smushit.com/ysmush.
此工具是一个无损压缩图片的工具,
一张30KB的图片优化后只有 27KB 或者更少……
总结:
以上6种优化方法都是前端的,前端优化的意义在于减少http请求,减少网站前端程序组成的体积。
其实在后端优化也必不可少减少更多的数据库查询,
冒着被人骂的风险发来主页,要是我火星了。请无视我吧……
jquery 1.5 发布的时候 john resig 大神说所用的代码优化程序从Google Closure切换到UglifyJS,新工具的压缩效果非常令人满意。 UglifyJS 是一个服务端node.js的压缩程序。据说很黄很暴力……
我测试了一下压缩率确实比较高。 所以值得写篇文章推荐下。
--------------------------------------------------------------------------------------------
你也可以尝试一下在线版的Uglifyjs: http://scriptcode.info/
--------------------------------------------------------------------------------------------
如果你对 uglifyjs 有兴趣可以按照以下安装方式进行安装。
1. 安装 node.js 环境 (这个不用我教了吧,网上教程一大堆哦。)
2. 进入 https://github.com/mishoo/UglifyJS 右上角 “Download” ZIP下载整个包。
3. 解压打开 UglifyJS/bin/uglifyjs
4. 找到
pro = uglify.uglify;
替换为
global.sys = require(/^v0\.[012]/.test(process.version) ? "sys" : "util");
5. cd 命令到 UglifyJS/bin/ 目录。执行 ./uglifyjs xx.js 如果安装成功会把你的压缩代码直接显示在命令行。
你可以通过如下命令形式 ./uglifyjs 1.js 2.js 把 1.js 压缩后的代码保存到 2.js
至此 uglifyjs 安装完成,我还写了一个PHP类。可以调用 uglifyjs 进行压缩
/*
------------------------------------
# code by https://fengyin.name
# DEMO http://sweet.fengyin.name/
# Dual licensed under the MIT
------------------------------------
*/
$uglifyjs = new uglifyjs(array(
'node_home'=>'/usr/local/bin/node',
'uglifyjs_path'=>'/usr/UglifyJS/bin/uglifyjs', //uglifyjs压缩工具的路径。
// -------- 附加的参数 --------- //
'prefix'=>'-b', //输入的参数 -b 是格式化 不输入为压缩,还有更多请参考命令用法。
'append'=>''//保存文件,如果为空就是直接在命令行输出结果。
));
$results = $uglifyjs ->compress($_FILES['file']['tmp_name']);
//////////////////////////
class uglifyjs{
function __construct($options = array()) {
$this->options = $options;
}
function args($option) {
return $option['node_home'].' '.$option['uglifyjs_path'].' '.$option['prefix'].' '.$option['file'].' '.$option['append'];
}
function exec($cmd) {
exec($cmd.' 2>&1',$out, $status);
return json_encode(array(
'shell' => $cmd,
'output' => implode("\n",$out),
'status' => $status
));
}
function compress($file) {
$this->options['file'] = $file;
return $this->exec($this->args($this->options));
}
}
?>
文章最后附上 uglifyjs 的命令行中文说明
(
限于自己的英语水平超级烂,请诸位将就看看就行。
有一些我都不明白的,就没有翻译,还有一些翻译错的,请多多包涵,一切以英文原版为准。
以下仅供参考~~ 不对翻译的准确性负责。
)