是否可以使用闭包编译器删除jQuery的未使用部分?
我有一个只使用jQuery的网络(json)函数的脚本,我想要一个删除其他所有东西的缩小脚本.
我试过调用它:
java -jar compiler.jar --compilation_level=ADVANCED_OPTIMIZATIONS --js=jquery-latest.js --js=my_script.js --js_output_file=out.js
编辑:我应该提一下这背后的原因.此脚本将包含在第三方网站中,它需要更高版本的jQuery(1.5或1.6).我认为最简单的处理方法是将最新版本捆绑在脚本中(仅适用于我的脚本,而不是触及window.jQuery),删除未使用的部分以减小大小.这样,如果他们已经有了旧版本的jQuery,它就不会干涉.
解决方法
在jQuery中删除“未使用”的方法是不可能的,因为你可以用疯狂的方式调用方法,如:
<input id="test" value="hello!"/> alert($('#test')[prompt('Method?')]()); // input "val" in the prompt Box
闭包编译器不可能知道将使用哪些方法.
小提琴:http://jsfiddle.net/garreh/xDDXt/
正如一些旁注:
> jQuery(1.6)的最新生产版本仅为31kb.通过适当的缓存控制,这将被下载一次并由浏览器在本地缓存.
>你可能会帮助自己优化通常尺寸更大的东西,即图像.
> …或减少浏览器请求,例如使用CSS精灵技术来更好地优化您的网站.
>放置您的jQuery代码< script>标记在页面底部,实现更大的下载并行化. http://developer.yahoo.com/blogs/ydn/posts/2007/07/high_performanc_5/