我怎样才能减少jQuery?

时间:2010-04-28 23:46:34

标签: jquery

我在我的网站上只使用了一些基本的jQuery函数 如何删除未使用的jQuery代码?
只知道基础知识,我看了代码,不知道从哪里开始。 如果你能指出我正确的方向,那将是值得赞赏的。

感谢。

6 个答案:

答案 0 :(得分:13)

jQuery本身并不是为了有选择地使用而构建的。它自己的功能之间存在许多相互依赖关系,并且源的布局并不容易模块化。与像jQuery-UI这样的插件的情况不同,jQuery的核心就是接受它或者离开它。

如果您只使用了一些简单的函数,那么您可以使用纯JavaScript重写它们。如果您使用的主要功能是选择器,则可以使用Sizzle,这是jQuery本身使用的基础选择器库。否则......不是真的。

答案 1 :(得分:5)

如果您想进一步缩小代码大小,请缩小和缩小或缩小代码大小。请注意,压缩代码在执行之前需要解压缩,从而导致延迟。 jQuery下载页面提供了一个已经缩小和压缩的版本。

您可以考虑的另一个选择是使用CND托管的jQuery,即由第三方组织(如Google或Microsoft)托管的jQuery。 Details in the jQuery download page

答案 2 :(得分:4)

问题是 - 为什么? jQuery 1.4.2的生产版本只有24Kb。通过对文件进行适当的缓存控制,它只会下载一次并进行缓存。为什么要这么麻烦?

答案 3 :(得分:2)

正如其他人所说,你不需要这样做。

如果你担心带宽问题,你可以reference jQuery from Google's AJAX API,就像这样:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.js"></script>

要回答这个问题,那将非常困难。

正如您所注意到的,jQuery是以非常简洁有效的方式编写的,并且没有可轻松删除的块。

答案 4 :(得分:0)

除了缩小/压缩/ CDN托管您的Javascript的提示之外,您应该对任何Javascript库执行此操作,请查看Zepto,其目的是成为专为移动浏览器设计的更轻薄的jQuery替代方案。它不是jQuery的直接替代品,但支持所有重要的东西,如选择器,AJAX操作和实用程序。我写了一篇关于这个主题的简短博文:http://blog.straylightrun.net/2012/10/23/so-you-want-to-use-jquery-in-your-javascriptwidget/

答案 5 :(得分:0)

您可以按照此处官方 jQuery 存储库中的文档创建自己的版本:https://github.com/jquery/jquery#how-to-build-your-own-jquery,但它涉及使用 Grunt。

如果您使用的是 Webpack,则可以按照此处的步骤操作:https://gist.github.com/rhaglennydd/abb2d27144e1a595e7c850b0a7611a21

我认为链接只回答违反了 SO 中的一些规则,所以我给出了一个简短的描述。

1.通过 npm 安装 jQuery

npm install jquery

2.复制导出的代码

将代码从 node_modules/jquery/src/jquery.js 复制到项目中的文件(例如 code/resources/js/jquery

3.编辑源文件路径

导入的文件必须是 node_modules 文件夹中的原始文件。 例如,'./core', 可以变成 '../../../node_modules/jquery/src/core'

4.删除不需要的模块

删除或注释一些模块:确保测试您的代码是否继续工作而不会引发错误。

5.在 Webpack 配置中添加自定义 jQuery 作为别名

这将告诉 Webpack 在您的代码或依赖项之一中需要 jquery 时使用您的版本。 例如:

module.exports = {
  resolve: {
    alias: {
      jquery: `${environment.paths.source}/js/jquery-custom/jquery-custom.js`,
    }
  }
};

最后一句话

我已经看到,如果我删除很多模块,大小会减小,但如果不这样做,它甚至会略微增加:因此,如果您需要逐步删除一些代码或者如果您已经在使用,这是一个很好的策略模块很少,否则你最好坚持原来的或寻找替代库。