2010-08-03 4 views
1

В моем веб-приложении для интрасети есть таблица элементов, в которой в настоящее время используется тег id, чтобы выбрать нужную строку, выбор осуществляется со скоростью 5-10 выборок/сек. Используемый метод может иногда приводить к некоторым несоответствиям из-за асинхронного характера, и очень сложно его правильно синхронизировать.getelementbyid vs index

Вопрос - выбор по индексу (через eq tag в jquery) быстрее, чем выбор по ID (через getElementByID)?

Я сделал несколько тестов, и он показал, что идентификатор немного быстрее, но я думал, что попрошу сообщество подтвердить.

ответ

1

Мне кажется, хотя ваш вывод о том, что getElementByID будет быстрее, поскольку jquery построен поверх javascript, хотя я, возможно, не знаю что-то о jquery, необходимом для ответа на этот вопрос.

Откидывается до необработанного javascript против слоя поверх javascript, и сам javascript всегда будет королем в этом соревновании.

1

Ничто в jQuery не превышает getElementById или любую другую встроенную функцию выбора DOM. Каждый раз, когда вы вызываете $, вы получаете штраф за исполнение. Конечно, если ваш селектор jQuery прост, как «#somediv», разница будет незначительной. Но если вы настроитесь на производительность и действительно хотите выучить каждый последний бит производительности, не используйте jQuery.

Если вам абсолютно нужны функции обертки jQuery, вызовите $(document.getElementById('somediv')); и присвойте результат переменной, которую вы можете повторно использовать.

Несмотря на то, что вы не видите свой код, сложно сказать, как вы могли бы оптимально его оптимизировать или даже если jQuery является основным узким местом.