Что такое селекторный двигатель?
Я видел новости о быстром новом движке селектора Джона Резига по имени Сиззл, появившемся во многих местах, но я не знаю, что такое движок селектора, и ни одна из статей не дала объяснения, что это такое. Я знаю, что Resig является создателем jQuery, и что Sizzle - это что-то в Javascript, но кроме этого я не знаю, что это такое. Итак, что такое селекторный двигатель?
Спасибо!
5 ответов
Механизм селектора используется для запроса DOM страницы на предмет определенных элементов, основанных на каком-либо запросе (обычно синтаксис CSS или аналогичный).
Например, это jQuery:
$('div')
Будет искать и возвращать все элементы
Оптимизация механизма выбора является большой проблемой, потому что почти каждая операция, которую вы выполняете с этими платформами, основана на каком-то запросе 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.