Я читал эту статью Брэндона Аарона здесь, о том, как может помочь контекст jquery. Поэтому я подумал о том, чтобы сделать собственное испытание. Так вот что я сделал.
-
Создал DIV с id = "context" и вложенным DIV с id = "holder" в "#context", созданным ранее.
-
Создал вложенные DIV глубины 18 и добавил
<div id="context"><div id="holder"></div></div>
к нему, в результате получив 20 вложенных DIV -
Теперь я проверил время, затрачиваемое на доступ к "#holder" с помощью следующих селекторов:
а.$("#holder") // no context
б.$("#holder", "#context") // with "#context" selector string
с.$("#holder", $("#context")) // sending jquery object each time with selector "#context"
д.$("#holder", $context) // where, var $context = $("#context"). Caching jquery obj
Был отмечен каждый из случаев, когда доступ кX = 1000
раз и разность начала и окончания. Я нашел, что время для:
случай (а) был наименее последовательным 28-32 мсек [jquery-1.3.2]
случай (b) + (c) имел наивысшие времена 60-65 мсек и 70-75 мсек соответственно
случай (d) имел 40-50 мсек с 1 или 2 шипами.
Является ли эта базовая проверка действительной? Вы можете играть с JS-кодом здесь в JSBIN.
[Дайте мне знать, если я смогу улучшить этот тест каким-то образом]
Если ДА, то как этот "контекст" действительно помогает?
#NOTE: также замените jquery-1.3.2 на jquery-1.4.2 в режиме редактирования jsbin, и вы будете удивлены, увидев, что цифры растут: P