Что такое селекторный двигатель?

Я видел новости о быстром новом движке селектора Джона Резига по имени Сиззл, появившемся во многих местах, но я не знаю, что такое движок селектора, и ни одна из статей не дала объяснения, что это такое. Я знаю, что Resig является создателем jQuery, и что Sizzle - это что-то в Javascript, но кроме этого я не знаю, что это такое. Итак, что такое селекторный двигатель?

Спасибо!

5 ответов

Решение

Механизм селектора используется для запроса DOM страницы на предмет определенных элементов, основанных на каком-либо запросе (обычно синтаксис CSS или аналогичный).

Например, это jQuery:

$('div')

Будет искать и возвращать все элементы

на странице. Для этого используется механизм выбора jQuery.

Оптимизация механизма выбора является большой проблемой, потому что почти каждая операция, которую вы выполняете с этими платформами, основана на каком-то запросе DOM.

Механизм выбора - это библиотека JavaScript, которая позволяет выбирать элементы в дереве DOM, используя некоторую строку для их идентификации (например, регулярные выражения для элементов DOM). Большинство механизмов выбора используют некоторую вариацию синтаксиса селектора CSS3, так что, например, вы можете написать что-то вроде:

var paragraphs = selectorengine.select('p.firstParagraph')

выделить все элементы P в документе с классом firstParagraph.

Некоторые механизмы выбора также поддерживают частичную реализацию XPath и даже некоторые пользовательские синтаксисы. Например, jQuery позволяет написать:

var checkedBoxes = jQuery('form#login input:checked')

Чтобы выбрать все отмеченные флажки в форме входа в документ.

Механизм выбора - это способ пройти DOM в поисках определенного элемента.

Пример встроенного селектора двигателя:

var foo = document.getElementById('foo');

Кроме того, Sizzle - это движок, над которым Джон Резиг работает над заменой и без того фантастического движка селектора jQuery.

Механизм выбора используется для поиска элементов в документе, так же, как и таблицы стилей CSS. В настоящее время только Safari имеет встроенную функцию querySelectorAll, которая делает именно это. С другим браузером вы должны использовать внешние реализации JavaScript как LlamaLab Selector или Sizzle.

Другие вопросы по тегам