用Sizzle替换dojo.query?

时间:2011-11-09 10:55:43

标签: javascript jquery dojo sizzle

Dojo拥有最慢的选择器compared to other JS frameworks

我想知道是否有可能在Dojo中使用Sizzle来制作dojo.query在幕后使用它?我认为它在jQuery中使用,所以它也应该在Dojo中使用。

无法找到有关如何操作的任何信息。

PS 链接上的测试似乎正在积极开发并每天更改,因此请确保在该页面上选择最新版本。

编辑: 似乎测试中的数字不正确,Dojo与其他人之间的差异并不是那么激进。这使得将Sizzle纳入Dojo的任务不值得付出努力。

3 个答案:

答案 0 :(得分:4)

我对此没有一个确切的答案,但它似乎有可能。根据{{​​3}},这个功能已经存在了很长一段时间。

dojo ticket有一个名为Alternate Selector Engines的部分,其中包含指向dojo query documentation的链接,该部分似乎可以轻松替代dojo查询引擎。

通过执行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."
    },

答案 1 :(得分:3)

我质疑你的号码。 Others对Dojo的查询引擎得出了相反的结论。它们都非常快,可能没有那么大的差别。

答案 2 :(得分:0)

您不需要用sizzle替换dojo.query。

你可以说dojo.query,它应该使用sizzle。

在dojo配置

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

};

使用 https://github.com/kriszyp/sizzle 和其他任何dojo包一样

请参阅http://dojotoolkit.org/reference-guide/1.9/dojo/query.html