是jQuery模块化吗?如何修剪它?

时间:2010-05-25 15:44:45

标签: jquery html jquery-ui javascript

Compressed, jQuery is ~70KB in size (uncompressed: >200KB).我没有看到像jQuery UI那样排除很少使用的部分的方法。如何减少jQuery的(压缩和缩小的)文件大小?我非常担心因为拨号线路和慢速机器/浏览器在我的网站用户中非常常见。

我主要关注的是解析浏览器中JavaScript的持续时间。在较旧的机器上,这需要数百毫秒。网络传输是一次性成本,这使得它更容易忍受。

7 个答案:

答案 0 :(得分:17)

没有服务(例如JQuery UI),您可以在其中挑选和选择功能。但是要帮忙:

  1. 缩小版小于25k,这有所帮助。非缩小版本永远不应该真正归结为客户端计算机。
  2. 始终从相同位置引用它,客户端浏览器应该缓存它。
  3. 您可以在html内容之后引用您的javascript库,这样初始加载对人类来说应该更快。
  4. 从与您不同的域引用您的jquery库,例如谷歌。 There are several advantages to this
    • 可能会在距离您的客户更近的位置提供服务
    • 它增加了与其他资源并行下载的可能性,特别是对于一次只能从域下载2个项目的旧浏览器。
    • 它增加了他们不必为你的页面加载jQuery 的机会,因为它已经从这个常用网站缓存了。

答案 1 :(得分:5)

您也可以let Google host jQuery为您提供更好的缓存等等。

答案 2 :(得分:2)

24kb最小化和gzipped不值得恕我直言。

答案 3 :(得分:2)

有一个jQuery builder可以用来修剪jQuery的某些部分。

答案 4 :(得分:1)

缩小版本是24kb缩小并压缩。 jQuery UI是单独捆绑的,它是模块化的,有一个打包器,允许你选择你想要包含的jQuery UI的哪些部分。

如果您从谷歌或微软CDN中引用它,那么它也会在浏览器中缓存,不仅适用于您的网站,还适用于使用CDN的任何网站。

答案 5 :(得分:1)

无法确切知道何时进行了更改,但JQuery团队现在允许开发人员使用Node JS编译自己的JQuery构建。 NPM(现在实际上是Node的一部分),Grunt是必备条件。

自定义构建过程似乎允许开发人员排除.Ajax和.Effects模块等关键组件。

详细信息可以在JQuery github项目自述文件中找到。

https://github.com/jquery/jquery

答案 6 :(得分:0)

jQuery不是模块化的。即使拨号,我也不认为24kb是一个大问题。