jQuery widget 开发的一些窍门

最近有一个项目基于JQUERY UI套件进行开发,于是我考虑所有的JS功能基于UI的结构进行开发管理,同时也在网上面收集了一些开发中的敲门,一下主要是以针对widget方面的总结:

1、在编写widget的时候,一般我们需要绑定一些事件,最好将这些widget的绑定事件加上当前widget的命名空间。

如果同一个jQuery对象,使用了两个widget,而两个widget都绑定了相同的事件名称,可能会出现问题。在销毁widget的时候,去除绑定事件也很方便,只需要unbind(”.namespace“)就可以了。

2、在写jQuery的时候,因为jQuery对象是支持连写的。譬如:$(obj).css(“height”,”20px”).attr(“title”,”abc”)….

但是这种写法看起来很精辟不过也存在一个弊端,就是阅读的时候很痛苦。:-),如果内置大量callback的话估计就挂了,大家在实际应用的时候最好能恰当选择适用的方法。

3、在编写的时候可以利用javascript的原生方法来避免switch。如下代码:

switch(a)
{
  case "aa":
    this._set_aa();
    break;
  case "bb":
    this._set_bb();
    break;
  case "cc"
    this._set_cc();
    break;
}

我们可以尝试替换成如下代码:

this["_set_"+a]();

4、尽量缓存jQuery对象和各种变量。这样可以提高脚本的性能。

5、采用变量缓存this指针,在最小化代码的时候this可以被最小化掉。

6、setOption的时候,如果一个option是复杂对象,而不是简单的值对象,最好不要简单的this.options[key]=value.而在这之前需要将value和以前的option的值做一个extend,然后在赋值,这样可以保留复杂对象原有的部分值。如下代码:

var a = {width:120,height:200};
var c={width:200};
a=c;
a=$.extend(a,c);

其结果是第一个a将是{width:20},会丢失掉height:200;而下面的那个将继续保留原始的height:200。



发表评论?

0 条评论。

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

无觅相关文章插件,快速提升流量