WP的结构和最佳实践
想必很多朋友都已经发现了我的主题更换了,貌似我一直也没有写什么文章来介绍我现在的主题。
我现在的主题叫做yui-theme,我想,这是我对主题内部构造的设计的一种追求,我希望能把我学到的所有的最先进的技术都用在这个主题上。
当然,现实和理想总是南辕北辙。
首先说说,我进行了哪些尝试吧。
1,css和js文件合并。将模板用到的所有css文件写入同一个文件引入模板。js文件同理。好处就是在相同流量的情况下,节省了http请求数量。当时我在中间引入了gzip压缩,而实际在本地测试的时候,觉得js文件经过压缩的话,页面占线速度会被拖慢3s以上了,可能是本地的服务器性能问题,反正最后是把js的压缩取消了,保留了css的压缩。
2,css框架,这个模板使用YUI的css框架来设计,这是我第一次使用这样的框架,因为对于搞不定css的我来说,使用框架无疑是一种简便的选择。框架文件有好几个,一个是grid,一个font,一个base,除此之外自定义的css放到custom里面,分文件开发,合并引入,这时候也能体现文件合并的好处。
3,大规模应用jQuery,我为这款模板设计了各种个样的jQuery小功能(当然,现在没实现几个)。使用jQuery的指导原则就是,非入侵式,也即,完全不让代码出现在html里面,只使用外部文件;保证可访问性,也即,如果js失效,页面损失的仅有美观,而不损失功能。
目前,这个模板开发完成度在10%左右,即便如此,也是耗费了我好几周的精力,以至于都没有任何继续下去的激情了。所以,我迫不及待地自己先用上了。
然后说说,模板设计过程中遇到的问题:
按照yahoo网页性能提升的最佳实践,应该在页面最底部引入js文件。我实际上就是这么做的,但是这个是有问题的。因为,关键问题就在于我使用了类库,类库是应该比所有js文件都早地被引入到页面,而我只能保证我的模板里先后顺序,而插件里的js一般会被hook到wp_head里面去,所以,总是会出现在头部,顺序乱了,肯能导致js失灵,所以现在不得不重复地在页头也引入了一个jquery,这就是浪费了。
使用文件合并来减少http请求,这个东西同样是很好的尝试,但是这又和wp的结构有关,很多插件又是很随意的在wp_head里面插入外部文件或者直接写代码,根本没有办法把这部分文件合并,这使得这个尝试也变得很鸡肋。曾经在wp的trac里面看到过有人提这个问题,解决这个需要全新的架构。我个人觉得需要全新的机制类支持这个功能。
我其实还为这个模板准备了很多好玩的小功能,但是现在都处于未完成状态,唉……好懒啊……
好久没写技术日志了,记下这几点感受以充数。
期待自己下一轮欲望高涨时刻的来临。