是否可以仅包含正在使用的jQuery库的一部分?

时间:2011-07-10 00:00:32

标签: jquery optimization

假设我只使用了一些jQuery函数,比如show,hide,animate和attr。是否有可能只获得实现这四个函数的jQuery库的一部分?

我不介意使用诸如编译器或某些依赖性检查脚本之类的工具。

P.S:请不要告诉我jQuery库的大小非常小,包含它并不重要。我知道这一点,但我仍然想知道是否有可能。

编辑:我要求自动解决方案。

5 个答案:

答案 0 :(得分:4)

是的,这是可能的,但非常轻微的痛苦。您不仅需要这4个函数,还需要那些依赖的所有核心函数(选择器,实用函数等)。当前的jquery核心库和基础结构没有提供任何方便的方法来进行依赖性分析:您可能能够找到一个javascript依赖性分析器,它可以让您顺利地完成这项工作,但是手动?不愉快。

答案 1 :(得分:2)

jQuery非常模块化。如果你想投入时间,你可以在github上从它的源代码构建jQuery的一个子集。

https://github.com/jquery/jquery

我很确定你只需从要排除的makefile中删除模块,但我自己从未尝试过。

答案 2 :(得分:0)

是的,如果您想花时间手动排除它们,这是可能的。这会耗费大量时间。 可以省略额外的UI工具,例如选项卡,工具提示或叠加(在多个网站上自动完成)。

答案 3 :(得分:0)

如果您正在寻找自动化解决方案,Google's Closure Compiler是业务中最好的(可能只是?)。不幸的是,jQuery is structured in such a way as to prevent the Closure Compiler from having any effect

该线程中的一个答案表明Dojo Toolkit can be used in conjunction with the Closure Compiler删除了未使用的框架部分。当然,与它们的“竞争对手”jQuery相比,它的语法不同,但它们在大局中非常相似。

我是jQuery的忠实粉丝,所以我保证Dojo没有付钱给我说这个,但如果以自动方式减少现有的javascript框架对你来说非常重要,我恐怕只有答案是放弃jQuery。

希望这会有所帮助......

答案 4 :(得分:0)

查看源代码,功能以块的形式添加。每个块添加

jQuery.extend({
});

所以,我想你可以尝试排除模块并测试它是否仍然有效。

最后,在删除模块并进行测试后,您将需要压缩文件,否则会浪费您的时间。