涂雅[博客园]
最新文章请访问独立博客:http://iove.net

用过Wordpress的朋友都知道,因为Wordpress的开放性,可以装很多插件,并且各种主题也是良莠不齐,很多做主题的人本身可能是设计人员,对于SEO和速度考虑本身不太多,所以造成Wordpress非常庞大,有时候首页要到500k至1M这样的水平。根据现在国内网速,一般都是以512k或者1M,那么以首页500K来看,全速下载需要10秒左右,何况用户的网络可能同时被其它程序占用,比如说打开几个网页,或者正在下载,这就导致原本紧张的网络资源变得更为紧俏。

现在大家用的wordpress都使用了jQuery类库,这个类库在wordpress本身有58k之多,而GZip压缩过后的jQuery只有19K。Google早就已经为大家提供一个Ajax库,因为Google本身在全球的CDN,可以让用户就近下载Ajax库,并且现在很多站点都用到了Google的Ajax库,那么当用户访问其它使用Google Ajax库的网站后再访问你的网站,就可以直接从缓存中去读取,而不需要重新请求服务器。有点类似于P2P的作用,使用的人越多就越快,当然这和p2p不一样,这个快是有限的。

怎么做呢?我们需要将wp-includes\script-loader.php文件的第121行(不一定会准确,可以搜索一下"/wp-includes/js/jquery/jquery.js"),注释掉原来的//$scripts->add( 'jquery', '/wp-includes/js/jquery/jquery.js', false, '1.3.2');,增加一行:$scripts->add( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js', false, '1.3.2');,我们把wordpress的jquery改为google的ajax类库,然后用firebug来看一下效果。
firebug监控网络流量

从上图我们可以看到,jquery是从ajax.googleapis.com下载的,并且大小变成了19k,假如用户没有下载过这个库,我们的网站速度理论上可以提高一秒左右(按标准网速)。

需要注意的是,在script-loader.php中更改为google ajax之后,后台有可能会出现脚本错误的问题,你需要在wp-admin/admin-header.php中的<head>标签内增加一条语句:<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>。但这样可能会在后台管理的时候加载两个ajax库,可这样有什么关系呢?我们最重要是让用户快,我也懒得去追究它是什么原因了,自己慢一点无所谓吧。

附:

Google的Ajax库提供多种Ajax的类库,如jQuery, prototype等,并且有多种版本,详情请访问:http://code.google.com/intl/zh-CN/apis/ajaxlibs/documentation/index.html

后记:我发现更改wp-admin/admin-header.php会带来问题,在插入图片会报脚本错误,可以试试如下代码,根据url中是否包括wp-admin来判断是否为后台,当url为后台的时候,加载本地jquery,否则加载google的jquery库。

	if(strpos($_SERVER['REQUEST_URI'], '/wp-admin/') != false)
	{
		$scripts-&gt;add( 'jquery', '/wp-includes/js/jquery/jquery.js', false, '1.3.2');
	}
	else
	{
		$scripts-&gt;add( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js', false, '1.3.2');
	}
  

注意:本文为我的独立博客镜像博客,自发表不再更新,原文可能随时被更新,敬请访问原文。同时,请大家不要在此评论,如果有什么看法,请点击这里:http://iove.net/1705/

本文来自http://iove.net,欢迎转载,转载敬请保留相关链接,否则视为侵权,原文链接:http://iove.net/1705/

posted on 2009-12-08 10:12  Conis  阅读(715)  评论(0)    收藏  举报