jQuery - элементы доступа к производительности - PullRequest
2 голосов
/ 24 ноября 2011

Я довольно интенсивно использую jquery ui и jqgrid в приложении, над которым я работаю.В большинстве примеров, которые я вижу, доступ к этим элементам управления осуществляется с помощью селектора jquery, чтобы найти элемент по id: $("#elementid").

У меня такой вопрос: обеспечивает ли jquery достаточно хорошую производительность, чтобы делать это снова и снова, или лучше сохранять ссылки на элементы при первом обращении к ним: var elementName = $("#elementid");

и использовать повторноссылка вместо?

Ответы [ 3 ]

1 голос
/ 24 ноября 2011

Использование JQuery для идентификатора идентично getElementById () в Javascript.

Поскольку вы можете прочитать здесь с использованием прямой ссылки быстрее, чем поиск каждый раз в дереве DOM для полученияваш объект.

IE8 getElementById: 0,4844 мс, поиск массива идентификаторов IE8: 0,0062 мс

Chrome getElementById: 0,0039 мс, поиск массива идентификаторов Chrome: 0,0006 мс

Это результат за 10 000 get.Чтобы увидеть весь код для теста, нажмите на ссылку.

1 голос
/ 24 ноября 2011

На самом деле JQuery - это кэширование ссылок.погружение в DOM каждый раз обходится дорого, и, как мы узнали (от одного из основателей SO), производительность - это функция .Вы можете ознакомиться с различными рекомендациями jQuery в Основах jQuery

0 голосов
/ 24 ноября 2011

Определение и повторное использование переменной, вероятно, немного быстрее и может считаться «наилучшей практикой», но $('#id') сопоставляется с нативным Element.getElementById, который определенно достаточно достаточно быстр для для большинства приложений.Даже если бы вы провели тесты на тысячах поисков, вы не получили бы заметных различий для человеческого разума.

В конце концов, я бы сказал, что это вопрос стиля кодирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...