我在我的网站上只使用了一些基本的jQuery函数
如何删除未使用的jQuery代码?
只知道基础知识,我看了代码,不知道从哪里开始。
如果你能指出我正确的方向,那将是值得赞赏的。
感谢。
答案 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 中的一些规则,所以我给出了一个简短的描述。
npm install jquery
将代码从 node_modules/jquery/src/jquery.js
复制到项目中的文件(例如 code/resources/js/jquery
)
导入的文件必须是 node_modules
文件夹中的原始文件。
例如,'./core',
可以变成 '../../../node_modules/jquery/src/core'
。
删除或注释一些模块:确保测试您的代码是否继续工作而不会引发错误。
这将告诉 Webpack 在您的代码或依赖项之一中需要 jquery
时使用您的版本。
例如:
module.exports = {
resolve: {
alias: {
jquery: `${environment.paths.source}/js/jquery-custom/jquery-custom.js`,
}
}
};
我已经看到,如果我删除很多模块,大小会减小,但如果不这样做,它甚至会略微增加:因此,如果您需要逐步删除一些代码或者如果您已经在使用,这是一个很好的策略模块很少,否则你最好坚持原来的或寻找替代库。