随着越来越多浏览器实现了document.querySelectorAll()
,
选择器的重担从 jQuery 转移了给浏览器,其优化已经没有以前那么重要了。
不过,有些 tips 还是需要紧记的。
选择器以 ID 开始总是最好的。
// 快 $('#container div.robotarm'); // 非常快 $('#container').find('div.robotarm');
使用 $.fn.find
的方式会更快是因为在第一步里只有 ID,
根本没用到快速选择器引擎,而是使用了浏览器内置的极速的
document.getElementById()
。
选择器的右侧部分应该尽可能具体,左侧则不需要那么具体。
// 未优化的 $('div.data .gonzalez'); // 优化过的 $('.data td.gonzalez');
如果可以,尽量在选择器靠右侧的部分使用 tag.class
,
而左侧只有 tag
或者只有 .class
。
避免过度的具体
$('.data table.attendees td.gonzalez'); // 如果可以不写中间的部分会更好 $('.data td.gonzalez');
清爽的 DOM 结构也有助于改善选择器的性能, 选择器引擎可以少跑几层去寻觅那个元素了。
Copyright Rebecca Murphey, released under the Creative Commons Attribution-Share Alike 3.0 United States license.