因为用到了很多特效,js比较大,而且jQuery随着版本号增加,体积也越来越大了,我一直想优化下。前面写了篇伪技术文,介绍了《js的动态加载》,而现在想进一步优化下速度。

首先,以前调用jQuery库都用的Google的Api,现在国内环境不太稳定。。原因大家都懂的,Google的速度不能保证,换用微软提供的Api,同时为了保证安全,本地服务器留一个备份,防止万一外面调用的jQuery加载不上。以下放到wp主题或者其他网页的头部,</head>标签之前,优先保证js库加载。

<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.4.min.js"></script>
<script type="text/javascript">
<!--
!window.jQuery && document.write('<script src="<?php bloginfo('template_url'); ?>/js/jquery-1.4.4.min.js" type="text/javascript"><\/script>');
//-->
</script>

我用的jQuery版本比较低,1.4.4足够了,可自行替换。本地保存一份压缩后的js放在wp主题js目录下面。

其次,页面的各种js效果采用仿Google analytics的方法异步加载,代码如下:

<script type="text/javascript">
<!--
	var core = document.createElement('script');
	core.type = 'text/javascript'; core.async = true;
	core.src = '{$jsFileURI}';//这里输入js地址
	var s = document.getElementsByTagName('head')[0];
	s.appendChild(core);
//-->
</script>

这段js也放在主题头部,注意上面给script加上了async标签,输出结果如下:

image

下面说说这样做的道理:

异步载入js,不会阻塞其它元素的加载,速度比同步方式更快,比如我页面的加载,虽然我把js放在头部,但是图片比js优先加载:

js加载示意

相比把所有js放在页面底部的做法,能更快的载入特效,比如对于页面DOM操作比较多的主题来说,能够更快的载入各种特效,至少视觉上减少了访客的等待时间。

 

最后,为啥不异步载入jQuery呢(体积巨大的一坨),因为异步的方式不能保证js加载的顺序。。。要是我页面的js加载比库更快,那么就会出错。但有很多方式能够做到异步按顺序加载js,比如有个head.js,能够像图片一样加载页面所有js,只需一个js在头部就可以了。

昨天研究了下“给wp菜单加上随机颜色”,提到没办法用php钩子解决重复颜色的问题,@phoetry 给了一个用js的解决的方法,这下完美了。

var colors=['#F99D35','#FB353E','#301141','#388CDE','#FE0096','#1BA0E1','#339933','#E91104'];//定义的颜色数组
colors.sort(function(){return Math.random()>.5?1:-1;});
//alert(colors);//测试下
$('.menu-item a').each(function(i){
this.style.backgroundColor=colors[i];
})

再次表示感谢~哦,顺便看到phoetry写的phZoom看图插件不错,刚替换了默认的slimbox,要是能加上支持div的缩放那就更好了…

以前就知道wp3.0自定义菜单功能可以自己设置css类,对应不同的样式。我现在想随机指定菜单背景颜色,好用在新主题Abook的导航菜单上,研究了下如何给wp3.0以上的菜单加上随机颜色,分析了下wp的源代码,结果找到了nav_menu_css_class这个地方,加上个钩子搞定。

QQ截图20110823182022

下面这段放function.php里面,给菜单项加上对应的随机css class。

<?php 

/**
    给nav菜单加上不同的颜色by winy 

*/ 

function Colorfullnav($classes){ 

$c = array(1,2,3,4,5,6,7,8,9); 

$classes[]= 'menu-item-color_' .$c[mt_rand(0, count($c)-1)]; 

return $classes; 

} 

add_filter('nav_menu_css_class', 'Colorfullnav');

然后在style.css里面设置颜色代码,例如:

.menu-item-color_1 a{background: #F99D35;}
.menu-item-color_2 a{background: #FB353E;}
.menu-item-color_3 a{background: #301141;}
.menu-item-color_4 a{background: #388CDE;}
.menu-item-color_5 a{background: #000000;}
.menu-item-color_6 a{background: #FE0096;}
.menu-item-color_7 a{background: #1BA0E1;}
.menu-item-color_8 a{background: #339933;}
.menu-item-color_9 a{background: #E91104;}

效果可见Abook现在的菜单背景颜色,仿标签,花花绿绿的….

进一步思考:现在的问题是如何保证不同时出现一个颜色呢?我知道增加颜色种类可以减少几率。。。请各位朋友指教

主题功能

无限翻页ajax翻页特效+预载,后台支持(SEO,广告,功能设置),自定义背景

支持模板(联系邮件表单,归档,留言板,读者墙)

独特的ajax留言/留言ajax分页/无限嵌套/博主高亮/评论自带格式工具栏

首页自动缩略图

…功能太多,列举麻烦。具体demo见本站或测试主题站点

技术细节:

异步载入页面js,加快js下载速度(asyn loading)

自适应屏幕大小,对应宽屏浏览器优(>1280px),显示宽屏版本(css3 Media Queries)

采用自定义英文字体,更优美的阅读体验(@font)

浏览效果:Chrome≈Firefox>IE9>Opera≈IE8>IE7(请自行检测)

IE6功能不正常,仅文章页可浏览

一些截图:

imageQQ截图14

567

主题价格

¥98元(停止出售)

(不接受各种优惠咨询,以下除外)
老用户(曾购买W1主题)购买30%off,仅售¥68元

促销打包,W1+Abook=¥148

购买方式

重要:购买前请先仔细的阅读本文的所有内容。

●支付宝付款(付款前请联系作者以便及时发送主题)

联系提供咨询的时间为晚9:00-11:00。咨询问题尽量发送邮件,QQ留言容易忽略。

售前咨询,点击下面图标(QQ加好友时请注明为购买主题

QQ咨询

 

售后服务

服务方式为Email/QQ [task]
√ 主题免费升级。
√ 提供详细的主题安装和使用说明。
√ 免费提供LOGO定制(限于PS水平,只替换标题文字)
√ 解决一些插件兼容问题。
√ 全价付费用户提供一定程度的主题定制,删减内容(不包括新增内容)和解决一些其他的简单要求(采纳优秀建议) [/task]

--------本来是上个周末去的地方,这周太忙,现在才发个游记记录一下。

七月的最后两天,在一个小地方憋屈了很久的我,跟随一群驴友,体验了一把户外徒步+露营+腐败的二日游。去的地方是新疆最美的田园风光---江布拉克。

DSCF3379

这次户外活动去的这个田园景点其实也是比较出名的景点,但是同一般旅游观光不同,我们走的路线是一般观光者不去的地方,真正是在山里行走,还需要自己准备帐篷和睡袋,在山腰扎营露宿,做饭。这倒是吸引我的地方,毕竟露营这种事情对于我还是挺新鲜的,值得尝试下。

第一天:

说起来算是徒步,其实徒步公里数大概就10公里左右,难度系数也很低。我们三十号人周六早上出发,坐车前往目的地,车上带领徒步的领队各种欢乐,还让本来互不认识的大家相互认识,当然用的是网名(本来就是网上组织的活动),做了一些小游戏,让旅途感觉时间过得挺快的。经过3个多小时的路程,从乌市到了奇台县,在半截沟这个地方稍事休整。路上拍了点向日葵,吃过午饭,继续坐车上山。

DSCF3336

下午大概四点,到了扎营的地方,第一天的活动,是沿着山麓绕行5公里+走马道上山+沿古栈道下山。从山腰到山顶,垂直距离并不长,但我们走的路线是旅游者不去的地方。对于长期在室内活动的我来说,在大山里行走,避开喧嚣,是一件多么让人兴奋的事情。在路上走着,一片茂密的深林里,一大块无人践踏的草地中,树荫里透过些许阳光,呼吸着森林的气息;远处是大片大片的绿,周围是郁郁葱葱的树林。爬山走累了,随处歇息一会儿,不会有游人嘈杂的声音,不会有小贩过来兜售东西。一转角,身边的同伴也似乎消失了踪影,静静享受这份安静和自在,这是在城市里体验不到的感觉。

松塔和栈道

DSCF3348DSCF3413

山谷随景

DSCF3340DSCF3343

静物

DSCF3397DSCF3401

回头绕回山腰,开始扎营。我还是第一次在帐篷里用睡袋过夜,晚上领队准备了大锅羊肉和烤肉,还有几个大西瓜,一堆人倒是很快解决了。

夜幕降临得很晚,不过夜幕下的星空倒是给我意外的惊喜,这里离天空近,整个天幕到处都是闪烁的星星,不时还听见有人喊流星划过。相机不给力,可惜没有留下照片。

晚上在山里过夜没有想象中的激动,倒是很轻松的睡着了。不过夜晚温度下降得厉害,尽管钻入了睡袋,凌晨还是有点凉的。

晚上我们的宿营地

IMG_9108

江布拉克的夕阳

DSCF3434

第二天:

早上本来打算早起看日出的,由于太冷+前一天已经欣赏了落日,没有起得来。早饭同行的师兄匆匆用气罐和便携餐具煮了顿面条,我也没帮得上忙,吃饱喝足了准备出发。

第二天活动内容是穿越麦田,田园风光就是指的这个吧。,蓝天下面是起伏的山丘,抬眼望去是一大片金色的麦田。虽然接近中午的太阳酷热难当,但是偶尔的微风,引起一片片麦浪翻滚的美景还是深深的吸引了我。穿过条条小道,在麦田边上漫步,如此美景怎能错过,赶紧咔嚓两张,回去做桌面也好。

DSCF3484DSCF3456

DSCF3457DSCF3468

周日下午原路返回,下山。沿路返回路程上还去了一处地质园,人工建筑远没有自然风光优美,暂且不表。整个两天的旅程,徒步时间不长,其实也很轻松。整个旅行花费200+,主要是路费太远。和驴友一起出去挺有意思的,下次有机会期待沙漠、天山和喀纳斯之旅,当然自助的形式最好不过。

附注一段简介:

江布拉克,位于新疆奇台县南部山区,距县城60多公里。独特的地理位置赋予了她绮丽多姿的自然风光。这里冬无严寒,夏无酷暑,一草一木,一山一水都写满了绿色与美丽,充满着神奇和诱惑。她灿烂地袒露着美丽的胸膛,安详地躺在东天山的臂膀之中,显得那么清纯,那么宽厚,那么温柔,那么圣洁。 江不拉克是哈萨克语,意为圣水之源。她集结了天山之灵气,并融入诸多美丽的传说。在这里,远山近水相映,林海雪峰交融,绿波花海如潮,一派圣洁的自然风光。美丽的江布拉克,以其秀美迷人,如诗如梦的花海子,明静清幽的黑涝坝,世界之最的天山怪坡,以及阡陌纵横的田园风光吸引着众多游人的目光。 每年的6、7、8月份是江不拉克风光最美的季节,没膝的党生花、贝母花和一种叫不上名的小黄花漫山遍野,争奇斗妍,沁人心脾的花香令人陶醉;远处群山起伏,层峦叠嶂,连绵不断,苍松翠柏直插云霄,雪峰、林海和绿草鲜花构成了一副秀丽的山水画卷;行走在这绿茸茸、湿漉漉的草地上,凉风习习,尽情呼吸新鲜的空气和花草的芳香,一种心灵被大自然净化的感觉油然而生,江布拉克草原水草茂盛、山花遍野、满目葱翠,特别是入口处的麦田、金色麦浪,称得上新疆田园风光之美,令人陶醉。

END

刚看到这个消息,Timthumb出现了一个较大的漏洞,会导致服务器被入侵。这个文件在很多wordpress主题中很常见,用来使用缩略图调整。

现在提供bug修改方案:

 

1、升级Timthumb到最新版本:http://code.google.com/p/timthumb/source/browse/trunk/timthumb.php

2、打开Timthumb.php,找到

$allowedSites = array (
'flickr.com',
'picasa.com',
'img.youtube.com',
'upload.wikimedia.org',
);

修改成以下内容:

$allowedSites = array ();

上传修改以后的Timthumb.php覆盖原文件,为以防万一,建议清空根目录下的cache文件夹,并修改wordpress的登录密码。

以上方法来自国外博客:这里,缺点是外部调用的文件例如图床将无法使用,比如我用的首页缩略图就是图床,无法显示了。但对于本地的图片无影响。

转载cnbete的消息:

数十万WordPress用户目前似乎正遭受图像处理脚本Timthumb的威胁,这是一个相当受欢迎的第三方脚本,它可以实现动态图像裁剪、缩放和调整,脚本的文件名是timthumb.php,该文档定义了数个可以远程提取的相册,但脚本并没有很好地验证这些域名,因此类似“http://flickr.com.maliciousdomain.com”这样的欺骗性二三级域名也会被通过,所以黑客理论上可以用任何域名后缀轻松仿冒,并通过缓存目录上传各种恶意程序

目前在Google搜索这一脚本的文件名,一共返回了39万个结果,这意味着这些博客全部遭受安全漏洞的影响,所以如果您运行着WordPress和Timthumb,请尽快做出行动修补或者暂停运行。

这个安全漏洞影响很大,我建议立刻停止使用旧的版本,更新Timthumb到最新版,并按照上面的方式去掉外部调用,至少在新的补丁出来之前,修复这个漏洞,避免更大损失。

PS:我的主题付费W1里面也有用到这个程序,稍候将放上了一个修正版本,请相关客户尽早更新。

换个背景