如何书写高质量jQuery代码(使用jquery性能问题)

2020-05-22 17:03:09易采站长站整理


$('#t').find('td').on('click', function () {
$(this).css({ 'color': 'red', 'background': 'yellow' });
});

这样会为每个td绑上事件,在为100个单元格绑定click事件的测试中,两者性能相差7倍之多,好的做法应该是下边写法:


$('#t').on('click', 'td', function () {
$(this).css({ 'color': 'red', 'background': 'yellow' });
});

5.精简jQuery代码
如在上述代码中我们对jQuery代码进行了适当的合并,类似的还有.attr()方法等,我们没有写成下边的方式:


$('#t').on('click', 'td', function () {
$(this).css('color', 'red').css('background', 'yellow');
});

6.减少DOM操作
刚开始使用jQuery时可能会频繁的操作DOM,这是相当耗费性能的。如我们要在body中动态输出一个表格,一些朋友会这样写:


var $t = $('body');
$t.append('<table>');
$t.append('<tr><td>1</td></tr>');
$t.append('</table>');

好的做法:


$('body').append('<table><tr><td>1</td></tr></table>');

这样在拼接完table串后再添加到body中,对DOM的操作只需一次。群里以前有朋友就因为这个导致在IE下输出时出现问题,而关于字符串的拼接可以参考下最快创建字符串的方法。

7.不使用jQuery

原生函数总是最快的,这点不难理解,在代码书写中我们不应该忘记原生JS。

就先总结这几条吧,每条建议并不难理解,但总结全面的话还是要花费不少时间的。如在减少代码段中,如果需要根据条件从数组中得到新数组时,可以使用$.grep() 方法,如果你在使用jQuery时有自己必得的话,欢迎在留言中和大家分享!

下面是其它网友的补充:

注意定义jQuery变量的时候添加var关键字
  这个不仅仅是jQuery,所有javascript开发过程中,都需要注意,请一定不要定义成如下:

$loading = $(‘#loading’); //这个是全局定义,不知道哪里位置倒霉引用了相同的变量名,就会郁闷至死的

请使用一个var来定义变量
  如果你使用多个变量的话,请如下方式定义:


var page = 0,
  $loading = $(‘#loading’),
  $body = $(‘body’);

不要给每一个变量都添加一个var关键字,除非你有严重的强迫症
定义jQuery变量
  申明或者定义变量的时候,请记住如果你定义的是jQuery的变量,请添加一个$符号到变量前,如下: