jquery性能优化

总是从#id选择器来继承

// id选择器($("idName"))对应于Javascript方法getElementById()
$('#content')
$('#content p')
  • 在class前面使用tag
// tag选择器($("tagName"))对应于Javascript方法getElementByTagName()
$('#nslForm input.on');

var content = $('div#content'); // 非常慢,不要使用
var traffic_light = $('#content #traffic_light'); // 非常慢,不要使用
  • 使用子查询
var header = $('#header');
var menu = header.find('.menu');
// 或者
var menu = $('.menu', header);
  • 优化选择器以适用Sizzle的“从右至左”模型
// 左边的选择器选择范围较宽泛些
var linkContacts = $('.contact-links div.side-wrapper'); // 推荐
var linkContacts = $('a.contact-links .side-wrapper');   // 不推荐
  • 采用find(),而不使用上下文查找
var divs = $('.testdiv', '#pageBody'); // 2353 on Firebug 3.6
var divs = $('#pageBody').find('.testdiv'); // 2324 on Firebug 3.6 - The best time
var divs = $('#pageBody .testdiv'); // 2469 on Firebug 3.6
  • 利用强大的链式操作
$('li.menu-item')
    .click(function () {alert('test click');})
    .css('display', 'block')
    .css('color', 'red')
    .fadeTo(2, 0.7);
  • 当要进行DOM插入时,将所有元素封装成一个元素
  • 缓存jQuery对象

  • 使用直接函数,而不要使用与与之等同的函数

results for ""

    No results matching ""