我知道我对几毫秒的性能时间过于追求完美,但我只是想知道为什么以下内容对我来说是真实的。它似乎与我的逻辑相悖。
我目前有一个div,在悬停时将图像淡出:
$('div.someclass').hover(function() {
$(this).children('img').fadeOut(function(){
// do something
});
}, function() {
// do something
});
经过一些测试(循环选择器1000次,取9个测试的平均值),我使用了3个不同的选择器,并得出速度如下:
$(this).children('img')
运行最快-平均约为400毫秒;$('img', this)
- 平均约为900毫秒;和$(this).find('img')
运行最慢-平均约为1000毫秒
这与有两个函数调用比一个更慢的逻辑相反。此外,我读到jQuery在内部将第二种情况转换为第三种情况,那么第三种情况会更慢吗?
有什么想法吗?