Что такое механизм выбора?
Я видел новости Быстрый новый селектор движка John Resig под названием Sizzle появился в нескольких местах, но я не знаю что движок селектора, и ни одна из статей не дает объяснений, что это такое. Я знаю, что Resig является создателем jQuery, и что Sizzle - это что-то в Javascript, но помимо этого я не знаю, что это такое. Итак, что такое механизм выбора?
Спасибо!
Ответы
Ответ 1
Механизм выбора используется для запроса страницы DOM для определенных элементов на основе какого-то запроса (обычно синтаксиса CSS или аналогичного).
Например, этот jQuery:
$('div')
Будет искать и возвращать все <div> элементов на странице. Для этого используется механизм селектора jQuery.
Оптимизация механизма выбора очень важна, потому что почти каждая операция, выполняемая с этими фреймворками, основана на каком-то запросе DOM.
Ответ 2
Механизм выбора - это библиотека JavaScript, которая позволяет выбирать элементы в дереве DOM с помощью какой-либо строки для их идентификации (считайте регулярные выражения для элементов DOM). Большинство движков селектора используют некоторые вариации синтаксиса селекторов CSS3, поэтому, например, вы можете написать что-то вроде:
var paragraphs = selectorengine.select('p.firstParagraph')
чтобы выбрать все элементы P в документе с классом firstParagraph.
Некоторые механизмы выбора также поддерживают частичную реализацию XPath и даже некоторые пользовательские синтаксисы. Например, jQuery позволяет писать:
var checkedBoxes = jQuery('form#login input:checked')
Чтобы выбрать все отмеченные флажки в форме входа в документ.
Ответ 3
Механизм селектора - это способ перемещения DOM в поисках определенного элемента.
Пример встроенного механизма выбора:
var foo = document.getElementById('foo');
Ответ 4
Кроме того, Sizzle - это двигатель, который Джон Ресиг работает над заменой jQuery уже фантастическим движком селектора.
Ответ 5
Механизм выбора используется для поиска элементов в документе, так же, как и таблицы стилей CSS. В настоящее время только Safari имеет встроенную функцию querySelectorAll, которая делает именно это. В другом браузере вы должны использовать внешние реализации JavaScript как LlamaLab Selector или Sizzle вместо этого.