月度归档:2011年10月

自己写的一个轻量级javascript框架的设计模式(转)

公司一直使用jQuery框架,一些小的项目还是觉得jQuery框架太过于强大了,于是自己周末有空琢磨着写个自己的框架。谈到js的设计模式,不得不说说js的类继承机制,javascript不同于PHP可以轻松的实现类继承,不过javascript的类继承方法还是有的,常见的有构建函数、原型扩展、综合……,也有一些专门写类的函数,例如jQuery的作者有个类继承函数。关于类继承写法可以简单看看这篇文章

我自己写的框架也不知道叫什么名字,刚开始写的时候随手写了个W(姓拼音,之前写过jQuery弹出框插件wBox),现在写这篇文章重新整理了一下思想,换了YQ(名字拼音,你懂的~)。

核心代码

框架设计的时候尽量做到了支持链式写法,也就是返回

this

,可以$(selector).handler1().handler2()……无限写下去,只要不是有返回值的就可以继续。包括了event,dom,css,还有fadeIn,fadeOut动画(因为再重构爱墙[html5+css3]版,所有顺手加上了这个功能)。如果配合sizzle选择器就更牛了! 继续阅读

巧用__call来丰富你的类的扩展性。

类是个什么东西呢?就是一组属性和方法的集合。
继承是什么意思呢?继承就是父类中的方法子类可以直接调用,而不用声明,这样可以节省代码量,同时可以使结构变得清晰。
子类与父类很多时候是有相似点的,有些时候子类从父类继承的方法不能直接使用,需要在他执行之前附加一段代码,
或者在执行完该方法以后再附加一段代码。
这种情况应该如何处理呢?我们带着问题将这种情况具体化:
先看这么一个类A:

class  A{
   public function Amethod(){
      echo 'this is parent!';
   }
}

继续阅读

javascript函数延迟执行

javascript是个很强的功能,但是很多东西是很耗时的,这个时候就算用ajax也会造成用户漫长的等待。这种现象造成的用户体验可以说是极度糟糕的。相信没有哪一个用户喜欢看着那个小图片在那里转啊转啊的。或者可以给用户一个进度看,这个确实是个不错的办法。解决这个问题的关键就是将一个大函数拆成若干个小函数,然后给一定的拖延时间,在其中夹杂着对用户的显示,这样就解决问题了。
拆分函数是没有问题的,程序员可以拆。然后这篇文章的重要部分要介绍的时间延迟。
延迟的方法有两种,setTimeout和setInterval。
setTimeout的用法如下:

var t=setTimeout(function(){
  yourCode();
},500);

继续阅读