replace dojo.query with Sizzle?

两盒软妹~` 提交于 2019-12-10 11:05:48

问题


Dojo has got the slowest selectors compared to other JS frameworks.

I was wondering if it was possible to use Sizzle within Dojo to make dojo.query use it behind the scenes? I think it is used in jQuery that way, so it should be possible in Dojo too.

Couldn't find any info about how to do that.

PS The test at the link seems to be being actively developed and changes daily, so make sure you select the latest version on that page.

EDIT: it appeared that the numbers in the test were not correct, and the difference between Dojo and others is not really as radical. That makes the task of including Sizzle into Dojo not worth the effort.


回答1:


I question your numbers. Others have come to the opposite conclusion about Dojo's query engine. They're all pretty fast, to the point where is probably doesn't make that big a difference.




回答2:


I don't have a precise answer to this, but it definitely seems possible. According to a dojo ticket this feature has been in the cards for quite a while.

The dojo query documentation has a section called Alternate Selector Engines with a link to a github repository which appears to have a fairly easy drop in replacement for the dojo query engine.

By performing a custom build of dojo, you can automatically bake in the sizzle engine. If you look at (the source distribution) util/buildscripts/jslib/buildUtil.js There is a parameter for 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:


You don't need to replace dojo.query with sizzle.

You can say dojo.query, it should use sizzle.

In the dojo config

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

};

Use https://github.com/kriszyp/sizzle as you would do with any other dojo package

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



来源:https://stackoverflow.com/questions/8063962/replace-dojo-query-with-sizzle

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!