заменить dojo.query на Sizzle? - PullRequest
2 голосов
/ 09 ноября 2011

У Dojo самые медленные селекторы по сравнению с другими JS-фреймворками .

Мне было интересно, можно ли использовать Sizzle в Dojo, чтобы dojo.query использовал его за кулисами?Я думаю, что он используется в jQuery таким образом, поэтому это должно быть возможно и в Dojo.

Не удалось найти никакой информации о том, как это сделать.

PS Тест по ссылке кажетсяБыть активно развивающимся и ежедневно изменяющимся, поэтому убедитесь, что вы выбрали последнюю версию на этой странице.

РЕДАКТИРОВАТЬ: оказалось, что числа в тесте не были правильными,и разница между додзё и другими не столь радикальна.Это делает задачу включения Sizzle в Dojo не стоящей усилий.

Ответы [ 3 ]

4 голосов
/ 09 ноября 2011

У меня нет точного ответа на это, но это определенно кажется возможным. Согласно билету на додзё эта функция уже давно присутствует в картах.

В документации по запросу dojo есть раздел под названием Alternate Selector Engines со ссылкой на репозиторий github , в котором, как представляется, имеется довольно простая замена для механизма запросов dojo.

Выполнив пользовательскую сборку додзё, вы можете автоматически запекать в движке sizzle. Если вы посмотрите (исходное распределение) util/buildscripts/jslib/buildUtil.js Есть параметр для query:

"query": {
        defaultValue: "default",
        helpText: "Select a DOM query engine. Default value is the normal dojo.query engine. Using query=sizzle will use the Sizzle engine."
            + "Normal Dojo tests are not run routinely with the Sizzle engine. See dojo/_base/sizzle.js for the version of Sizzle."
    },
3 голосов
/ 10 ноября 2011

Я ставлю под сомнение ваши номера. Другие пришли к противоположному выводу относительно механизма запросов Dojo.Они все довольно быстрые, до такой степени, что, вероятно, это не имеет большого значения.

0 голосов
/ 06 апреля 2014

Вам не нужно заменять dojo.query на sizzle.

Вы можете сказать dojo.query, он должен использовать sizzle.

В конфигурации додзё

var dojoConfig = {
    selectorEngine: "sizzle",
    async: true

};

Использование https://github.com/kriszyp/sizzle как вы делаете с любым другим пакетом dojo

см. http://dojotoolkit.org/reference-guide/1.9/dojo/query.html

...