是否有一个插件可以自动缩小和缓存JavaScript?

时间:2011-07-14 01:22:09

标签: javascript minify

我正准备开始一个新项目,我想知道是否有办法在服务器端自动缩小JavaScript,一旦JavaScript缩小了一次就提供缓存?我可以简单地编写一个构建脚本来实现这一目标,但如果我可以通过自动缩小来“发射并忘记”,那就太好了。在这种情况下,推荐的路线是什么?我应该在花时间上线之前缩小我的JavaScript吗?或者我应该在服务器端寻找能自动为我做的事情吗?

修改

我可能会使用Django,但当然,JavaScript和媒体是与实际的“HTML”/应用程序输出分开提供的。

3 个答案:

答案 0 :(得分:7)

这将取决于您正在使用的服务器端语言。它与Javascript或Css没什么关系,而是PHP,.NET,Ruby等等。

注意:这些只是我已经完成的一些快速搜索。我没有任何经验。

我个人建议在运行时执行缩小/合并的 ANY ,因为服务器端性能损失一再发生且 over < / em>再次。

以上是我的“答案”


以下是我的“偏好”

我的偏好是使用某种构建时间缩小/组合工具来实现目标一次并让服务器只是“服务”。

由于我正在为我的IDE运行Visual Studio,我的首选是使用名为Chirpy的工具...最终结果是一个静态site.min.js文件和一个静态site.min.css文件包含我需要的所有内容。在运行时组合/缩小我的js / css,我不会再受到性能损失。


修改

请务必阅读以下评论,因为它们有助于增加OP所寻求的整体概念。


修改

同样刚刚找到WebPutty,看起来就像一个漂亮的工具。

答案 1 :(得分:1)

YUI Compressor令我惊讶的是,在服务器上需要Java并且你传递了正确的参数:

这是我使用的构建脚本(用Ruby编写,但不是必须),它使用正确的参数调用压缩器,就是这样。

#
# Build JS Files
#
require 'rake/packagetask'

JAVA = 'java'
OUTPUT = 'public/js/sitel-core.js'
MINOUTPUT = 'public/js/sitel-core.min.js'
OUTCSS = 'public/css/styles.css'
MINCSS = 'public/css/styles.min.css'
WIZOUT = 'public/js/sitel-wizard.js'
WIZMIN = 'public/js/sitel-wizard.min.js'

desc "Build CSS Scripts"
task :buildcss do
    files = 'public/css/styles.css'
    `#{JAVA} -jar build/yuicompressor.jar #{OUTCSS} -o #{MINCSS}`
end

desc "Build JS Scripts"
task :build => [:buildcss] do
    files = 'public/js/sitel.js public/js/sitel/popup.js public/js/microtable.js public/js/microbox.js public/js/sitel/popup.page.js public/js/sitel/flexigrid.js public/js/flexigrid/flexigrid.js public/js/nyroModal-1.6.2/js/jquery.nyroModal-1.6.2.js public/js/help-bubble.js public/js/sitel/elgg.js'
    `cat #{files} > #{OUTPUT}`
    `#{JAVA} -jar build/yuicompressor.jar #{OUTPUT} -o #{MINOUTPUT}`    

    wizard = 'public/js/wizard2.js public/js/dual-select.js public/js/filterbox.js public/js/jquery-validate/jquery.validate.js public/js/smartsearch.js public/js/smartsearch-validator.js public/js/flexigrid/flexigrid_helper.js '
    `cat #{wizard} > #{WIZOUT}`
    `#{JAVA} -jar build/yuicompressor.jar #{WIZOUT} -o #{WIZMIN}`
end

desc "Build JS Scripts"
task :default => :build

答案 2 :(得分:0)

如果您使用Apache,则可以使用此解决方案来动态提供缩小的js文件: https://www.unixmen.com/how-to-auto-minify-javascript-files-on-page-load-in-apache-using-uglifyjs/