В примере x0n это должно быть:
SET ROWCOUNT @top
SELECT * from sometable
SET ROWCOUNT 0
Конечно, есть разница в производительности, поскольку sizzle не нужно запускать каждый раз, однако есть и разница в функциональности. Если dom изменится между 1-м и 3-м вызовами, кешированный объект jQuery по-прежнему будет содержать старый набор элементов. Это часто может произойти, если вы кэшируете набор, а затем используете его в обратном вызове.
I prefer the second way. It will be easier to maintain code even if an element id or class changes.
Есть еще один быстрый способ. Это так же быстро, как и ваш второй код.
$('#Element')
.dothis()
.dothat()
.find('a')
.dothat();
расширяет метод Гомми
var Object = $('#Element');
Object
.dothis()
.dothat()
.find('a')
.dothat();
Быстрее и сохраняет объект для дальнейшего использования.
The second way has a performance benefit. It may or may not be great but it is better. In the first version, you're doing dom traversal 4 times, in the second you only do 2.
Pretty good article on speeding up jQuery here: http://net.tutsplus.com/tutorials/javascript-ajax/10-ways-to-instantly-increase-your-jquery-performance/