【发布时间】:2013-01-01 22:29:00
【问题描述】:
我继承了一个使用 Dojo、Mootools 和 JQuery 的项目,并在几乎每个页面上加载所有三个库。由于这是一个 Drupal 项目,它使用 JQuery 作为默认库,我想保留 JQuery 并尽可能将 Dojo 和 Mootools 部分转换为 JQuery。我相信它正在使用以下版本(请参阅我对 Christophe 的评论回复)
- jQuery 1.5.1
- Mootools 1.2.5.
- 道场 1.6.1
现在我只是想确定 Mootools 和 Dojo 的用途。理想情况下,我想找到一个正则表达式
- 对 Mootools 或 Dojo 的调用进行命中,但对 JQuery 不进行命中(或在某种程度上过滤它们)
- 误报方面的错误
作为一个快速检查,我使用这个正则表达式进行了搜索:(\$\(|[Mm]ootool|[Dd]ojo)
当然,这捕获了对 JQuery 的大多数调用,但只是为了了解我必须查看多少个文件。我在 258 个文件中有 5913 个匹配项
如果我只搜索\$\(,我会在 221 个文件中找到 4081 个匹配项。这些可能绝大多数是 JQuery,但只是想找到一种减少我必须查看的实例数量的好方法。
【问题讨论】:
-
dojo/Mootools 有哪些版本?例如 dojo 1.7+ 与 dojo 1.6 完全不同-
-
Mootools 文件是 mootools-1.2.5-core-yc.js 所以我猜是 1.2.5 Dojo - 我猜是 1.6.1 因为我在 dojo.xd.js 文件中找到了这个:
dojo.version={major:1,minor:6,patch:1谢谢克里斯托夫 -
另外,mootools 是典型的。对 $ 的调用并不重要——你需要担心在数组、字符串、函数等对象上调用的方法,因为它们不会被捕获。另请参阅softwareishard.com/blog/firebug/firebug-tip-log-function-calls - 您现在可以在 FB 中记录函数调用。如果您想捕获所有 mootools $ 呼叫,那么您希望将呼叫记录到
document.id而不是 $。如果在加载时已经分配了 $,mootools 将不会接管它。 -
感谢 Dimitar。我假设 $ 是为 JQuery 命名空间保留的,因为 JQuery 在每个页面上都加载并且肯定正在使用它。所以正如你所说,我认为 mootools 不应该使用它。还要感谢记录呼叫的想法 - 唯一的问题是我必须加载网站上的每个页面才能知道在哪里调用什么,对吗?我正在尝试找到一种不需要的方法(这是一个非常大的站点)。不过感谢您的想法 - 我可以访问一个样本,看看它揭示了什么。
-
PS:加载顺序是dojo、jquery、mootools。
标签: javascript jquery dojo mootools