Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有一个插件可以自动缩小和缓存JavaScript?_Javascript_Minify - Fatal编程技术网

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

是否有一个插件可以自动缩小和缓存JavaScript?,javascript,minify,Javascript,Minify,我正准备开始一个新项目,我想知道是否有一种方法可以自动缩小服务器端的JavaScript,在JavaScript缩小一次后提供缓存?我可以简单地编写一个构建脚本来实现这一点,但如果我可以“发射并忘记”,也就是说,自动缩小,那就太好了。在这种情况下,推荐的路线是什么?我应该在JavaScript上线之前缩减它的大小,还是应该在服务器端寻找能够自动完成这一任务的东西 编辑 我可能会使用Django,但当然,JavaScript和媒体与实际的“HTML”/应用程序输出是分开提供的。这将取决于您使用的服

我正准备开始一个新项目,我想知道是否有一种方法可以自动缩小服务器端的JavaScript,在JavaScript缩小一次后提供缓存?我可以简单地编写一个构建脚本来实现这一点,但如果我可以“发射并忘记”,也就是说,自动缩小,那就太好了。在这种情况下,推荐的路线是什么?我应该在JavaScript上线之前缩减它的大小,还是应该在服务器端寻找能够自动完成这一任务的东西

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

这将取决于您使用的服务器端语言。它将与Javascript或Css无关,而是与PHP、.NET、Ruby等相关

(注意:这些只是我做过的一些快速搜索。我对它们都没有任何经验。)

  • PHP:
  • .NET:
  • 红宝石:
我个人建议不要在运行时执行任何缩小/合并操作,因为服务器端性能会一次又一次地受到影响

以上是我的“答案”
以下是我的“偏好” 我的偏好是使用某种构建时缩小/组合工具,一次性实现目标,让服务器只“服务”

由于我正在为我的IDE运行Visual Studio,我的首选是使用一个名为。。。最终结果是一个静态的
site.min.js
文件和一个静态的
site.min.css
文件,其中包含了我所需要的一切。我将不再因为在运行时合并/缩小js/css而受到性能影响


编辑 请务必阅读下面的评论,因为它们有助于增加OP所寻找的整体概念


编辑 也是刚刚发现的,看起来是一个非常灵活的工具。

对我来说非常有效,需要在服务器上使用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

如果您使用Apache,则可以使用此解决方案动态提供缩小的js文件:

这实际上取决于您使用的服务器端框架;您可能应该指定。自动化的东西。否则它将是疯狂的。把它放在构建过程中。YUI是我认为大多数其他应用程序运行的“标准”压缩器。我知道Chirpy在床单下面用YUI。当然。我不知道有像Chirpy这样的东西可以把所有的东西都放在一起,所以这真的很酷。希望如果我推出像YUI和
mod_deflate
mod_gzip
这样的东西,我会获得最好的性能和文件大小。但是,有没有缩小和缓存JavaScript的框架?(即:第一个请求导致代码被缩小并保存到缓存文件中,第二个请求仅拉取缓存文件)进行缓存的最佳方法是使用单独的域名,并让您的web服务器进行缓存。IIS和Apache都有这样做的方法。如果查看StackOverflow源代码,您将看到所有静态文件都来自
http://cdn.sstatic.net/
-它以前不是cdn。。。而且他们仍然能够从
http://sstatic.net
。请记住,静态域必须是“无Cookieless”,这意味着它不能只是现有域之外的子域。作为额外的tid信息,确保您的图像也能提高性能。此外,还提供了一个nginx模块: