编写高效jQuery代码的4个原则和5种技巧

jQuery的编写原理:

1。不要过度使用jQuery

1。jQuery速度快,无法与本机Javascript方法进行比较,而所建立的jQuery对象包含大量信息。因此,可以使用本地方法的地方,尽量避免使用jQuery。
复制代码代码如下所示:
$()。Click(函数(){)
警报($(this)。Attr(ID));
});
在这里修改
$()。Click(函数(){)
警报(此id);
});




2。许多jQuery方法有两个版本,一个是jQuery对象,另一个是jQuery函数使用的版本,因为后者不通过jQuery对象操作,相对成本更小,速度更快。
复制代码代码如下所示:
VaR(文本=美元美元#文本);
VaR的TS = text.text美元(美元);
在这里修改
VaR(文本=美元美元#文本);
变量$ $ = text(text);

这里是$()和其他类似的$()等的内置函数。


两。缓存jQuery对象

发现DOM元素实际上有很多内存开销。选择器的数量应该越少越好,并尽可能地缓存选中的结果,以便以后可以重复使用。

例如:
复制代码代码如下所示:
$(#顶)。找到(p.classa );
$(#顶)。找到(p.classb );
这里的改性
VaR缓存=(#美元顶);
Cached.find(p.classa );
Cached.find(p.classb );


三,DOM结构变化不大。

如果要更改多个DOM结构,首先要更改的第一部分是更改,然后将其返回。

例如:
复制代码代码如下所示:
无功top_100_list = {…}, / /这是100的字符串数组
mylist = $(美元# mylist );
对于(var i = 0,L = top_100_list.length;i < L;i++){
(mylist美元。添加+ top_100_list {我} + ); / / 100 DOM操作
}
这里的改性
无功top_100_list = {…},
mylist = $(美元# mylist ),
top_100_li = ; / /字符串变量存储的变化
对于(var i = 0,L = top_100_list.length;i < L;i++){
top_100_li + top_100_list {我} + + = ;
}
mylist.html美元(top_100_li); / / DOM操作只有一次


四,命名规范

jQuery代码不可避免地与JS代码混合在一起。如何使jQuery代码看起来严谨有序,规范其命名规则,可以更好地提高代码的阅读能力。

1。函数名称:函数(getresultbyuserid){,},跟着骆驼,首字母小写单词大写,并尽可能清晰的表达意味着短。

它也可以用这种方式定义:
复制代码代码如下所示:
美元。flushcartitemlist =函数(){
isajaxdate =真;
}


2。参数:函数法(recordidx,recordval){,},用函数名、参数使用缩写。
命名是有意义的,和一些属性的缩写也很有讲究,比如:指数:IDX;价值:价值;长度:长度;名称:nm;等等…

3。变量名:VaR user_id;VAR user_list_tab;VAR user_list_tr_1;一般,强调分词,根据_指数_元素命名规则。

jQuery对象的变量名被添加到$的前缀中以区别Javascript对象。


jQuery写作技巧:

选择器的选择

选择器是jQuery的基础,如何选择最有效的选择器是理解各种选择器的性能差异。

(1)ID选择器和标记元素选择器:$(# ID);$(标签);

jQuery内部会自动调用浏览器的本地方法(getElementById();,getelementbytagname();),所以执行速度快。

类选择器:$();

jQuery将遍历所有DOM节点来查找类的DOM对象,因此执行速度很慢。

(3)伪类选择器和属性选择器:$(:型);$({属性=价值});

由于浏览器对他们没有一个本地方法,两选择器执行最慢的。但是,这并不排除一些第三方浏览器添加queryselector()和()方法,所以querySelectorAll这些选择器的性能有了很大的提高。

二、链式

复制代码代码如下:$()。查找()。EQ(2)。Html();

使用链写时,jQuery自动缓存每个步骤的结果,比非链式编写(手动缓存)更快。


三、高效率循环

环始终是一个耗时的操作,和javascript本地回路法虽然比jQuery快(每年),对于周期,以下文字是最有效的。
复制代码代码如下所示:
对于(var i = 0,len = array.length;我< len;i++){
警报(i);
}


声明变量先进行循环遍历数组操作比更有效(var i在ARR),这是更有效的比数组的长度循环采集(var i = 0;i < arr.length;i++)。

四,字符串拼接

字符串拼接在开发过程中经常遇到,使用C++的方式字符串效率很低,我们可以使用数组的连接(方法)。

复制代码代码如下所示:
var数组{ };

对于(var i = 0;i < 10000;i + +){
数组{;
}

document.getelementbyid().innerHTML = array.join();


我以前喜欢用数组的方法。推(),事实上,直接在ARR { }或{ }我还arr.length能快一点的方式,但差异不是很大。

五页加载

虽然$(函数({)})非常有用,但它在加载所有DOM元素时都是完整的。如果您发现页面始终处于加载状态,那么很可能是这个函数的结果。当页面通过绑定jQuery函数到$(窗口)加载事件时,可以减少CPU使用率。

复制代码代码如下所示:
$(窗口)加载(函数(){)
完全加载页面(包括所有DOM元素和js代码)jQuery函数初始化。
});


一些特殊的功能,如拖放,视觉效果和动画,预装隐藏图像等,是适用于这种技术。