2

与其他 JS 框架相比, Dojo 的选择器速度最慢。

我想知道是否可以在 Dojo 中使用 Sizzle 让 dojo.query 在幕后使用它?我认为它在 jQuery 中是这样使用的,所以在 Dojo 中也应该可以。

找不到有关如何执行此操作的任何信息。

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

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

4

3 回答 3

4

我对此没有确切的答案,但它绝对是可能的。根据道场门票,这个功能已经存在了很长一段时间。

dojo 查询文档有一个称为github 存储库Alternate Selector Engines链接的部分,该部分似乎可以轻松替换 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."
    },
于 2011-11-09T13:21:08.913 回答
3

我质疑你的数字。 其他人对 Dojo 的查询引擎得出了相反的结论。它们都非常快,以至于可能没有那么大的区别。

于 2011-11-10T18:41:56.037 回答
0

您无需将 dojo.query 替换为 sizzle。

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

在道场配置中

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

};

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

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

于 2014-04-05T20:46:06.570 回答