Javascript 在格式化/缩小的CSS和JS代码之间是否有自动往返的技巧?

Javascript 在格式化/缩小的CSS和JS代码之间是否有自动往返的技巧?,javascript,css,performance,Javascript,Css,Performance,正如我们所知,缩小CSS和JavaScript使页面加载更快 在开发阶段,如果需要“格式化”版本,请在Eclipse IDE中使用CTRL+Shift+F。它生成如下输出: *.cssClass { background-color: #FFFFFF; color: #C4C0B9; border-width: 1px; border-style: solid; border-radius: 0px; padding: 1px; } 在部署阶段,

正如我们所知,缩小CSS和JavaScript使页面加载更快

在开发阶段,如果需要“格式化”版本,请在Eclipse IDE中使用CTRL+Shift+F。它生成如下输出:

*.cssClass {
    background-color: #FFFFFF;
    color: #C4C0B9;
    border-width: 1px;
    border-style: solid;
    border-radius: 0px;
    padding: 1px;
}
在部署阶段,像yuicompressor这样的外部工具将生成一个小型版本,如:

*.cssClass{background-color:#FFFFFF;color:#C4C0B9;border-width:1px;border-style:solid;border-radius:0px;padding:1px;}
问题是开发周期的运行方式如下:

*.cssClass {
    background-color: #FFFFFF;
    color: #C4C0B9;
    border-width: 1px;
    border-style: solid;
    border-radius: 0px;
    padding: 1px;
}
开发初始代码 格式化 测验 缩小 再次测试 部署 如果需要任何更新:

发展 格式化最后缩小的代码 测验 缩小 再次测试 是否有任何技巧可以在格式化/精简代码之间自动往返

开发时:显示格式化代码 部署时:保存缩小的代码
你不应该在开发中缩小规模。缩小应该是部署的一部分,而不是开发的一部分

因此,我建议在开发和实时部署之间迈出一步。一个“集成”测试阶段,如果您愿意的话,在该阶段,代码将被缩小,并以其他方式进行实时处理,并在那里进行测试,以确保在实际部署到实时服务器之前仍然有效

我不建议每次在开发过程中编辑代码时都测试CSS和JavaScript的缩小版本。缩小应该是一个相对可靠的过程,能够接受任何有效的CSS/JS,并在不改变其行为的情况下使其变小

如果你的迷你们游戏机不提供这种服务,你应该切换到另一个迷你们游戏机,或者通过编写破坏迷你们游戏机的测试用例来改进它,甚至帮助修复它

而且,正如在评论中提到的,理想情况下,某种构建脚本将部署到您的集成和实时环境中,这样您就不会手动缩小

更先进的迷你们 如果您有一个minifier,它提供了非常好的压缩,但代价是阻塞了某些代码构造,那么请记录minifier不允许的代码构造,并督促您的团队避免它们

但是你不应该真的为minifier编写代码——它是用来帮助你的工具。检查gzipping后字节节省与更宽松的缩微器相比,并确定它们是否真的值得增加的精神开销——对于您以及现在和将来从事该项目的任何其他人来说


连线上的更少字节不是与项目相关的唯一度量。

您不应该在开发中缩小。缩小应该是部署的一部分,而不是开发的一部分

因此,我建议在开发和实时部署之间迈出一步。一个“集成”测试阶段,如果您愿意的话,在该阶段,代码将被缩小,并以其他方式进行实时处理,并在那里进行测试,以确保在实际部署到实时服务器之前仍然有效

我不建议每次在开发过程中编辑代码时都测试CSS和JavaScript的缩小版本。缩小应该是一个相对可靠的过程,能够接受任何有效的CSS/JS,并在不改变其行为的情况下使其变小

如果你的迷你们游戏机不提供这种服务,你应该切换到另一个迷你们游戏机,或者通过编写破坏迷你们游戏机的测试用例来改进它,甚至帮助修复它

而且,正如在评论中提到的,理想情况下,某种构建脚本将部署到您的集成和实时环境中,这样您就不会手动缩小

更先进的迷你们 如果您有一个minifier,它提供了非常好的压缩,但代价是阻塞了某些代码构造,那么请记录minifier不允许的代码构造,并督促您的团队避免它们

但是你不应该真的为minifier编写代码——它是用来帮助你的工具。检查gzipping后字节节省与更宽松的缩微器相比,并确定它们是否真的值得增加的精神开销——对于您以及现在和将来从事该项目的任何其他人来说


与您的项目相关的不仅仅是减少传输的字节数。

各种服务器可以根据请求处理缩小代码。它们将缓存结果以保持与初始代码几乎相同的性能—第一个请求可能需要几秒钟。比如说

nodejs的connect模块在内部使用YUI,并且可以轻松缓存 回显压缩样式表的PHP脚本使用服务器缓存 我建议使用一个暂存环境,在该环境中,当收到代码时,代码会被缩小。例如,在服务器上使用、或shell脚本更新代码。在那里测试之后,您的主服务器可以在shell脚本中以简单的scp安全副本的形式接收生产文件

缩小可能会导致问题,除非它是一个简单的空格删除,例如ff
fff应该压缩为fff,所以在部署之前最好对其进行测试。这并不意味着你需要在你的工作站上担心它

各种服务器可以根据请求处理缩小代码。它们将缓存结果以保持与初始代码几乎相同的性能—第一个请求可能需要几秒钟。比如说

nodejs的connect模块在内部使用YUI,并且可以轻松缓存 回显压缩样式表的PHP脚本使用服务器缓存 我建议使用一个暂存环境,在该环境中,当收到代码时,代码会被缩小。例如,在服务器上使用、或shell脚本更新代码。在那里测试之后,您的主服务器可以在shell脚本中以简单的scp安全副本的形式接收生产文件


缩小可能会导致问题,除非它是一个简单的空白删除,例如fffff应该压缩到fff,所以最好在部署之前测试它。这并不意味着你需要在你的工作站上担心它

最近每个人在问题中都使用反勾号是怎么回事?在堆栈溢出时,反勾号用于内联代码-请参阅,特别是。您应该始终在原始源代码上开发,而不是在从小型版本反编译的内容上开发。构建过程是一种方式:source->compiled/minified/compressed/concat'd版本,当然应该是自动化的。将所有内容保持在版本控制中,以便您知道哪个源版本对应于哪个版本。使用构建工具自动执行此过程,并始终按照开发版本编写代码。您应该使用@import、@charset、@media、IE过滤器语法、CSS3和多背景、动画、,hsla或类似的复杂声明,仅此而已。因为你不需要取消缩略,这是一个单向的过程,没有反向测试。最近每个人在他们的问题中都使用反勾号是怎么回事?在堆栈溢出时,反勾号用于内联代码-请参阅,特别是。您应该始终在原始源代码上开发,而不是在从小型版本反编译的内容上开发。构建过程是一种方式:source->compiled/minified/compressed/concat'd版本,当然应该是自动化的。将所有内容保持在版本控制中,以便您知道哪个源版本对应于哪个版本。使用构建工具自动执行此过程,并始终按照开发版本编写代码。您应该使用@import、@charset、@media、IE过滤器语法、CSS3和多背景、动画、,hsla或类似的复杂声明,仅此而已。因为你不需要缩小它是一个单向的过程,没有向后的测试来获得很好的压缩,所以有些东西可能会破坏。例如,闭包编译器将删除死代码、重命名函数和变量等,除非您编写的代码没有格式错误。然而,与空白清除器相比,它的功能非常强大。“要获得非常好的压缩效果,有些东西可能会被破坏。”在这一点上,我会仔细观察我额外减少了多少,以及额外的开发难题是什么。我仍然不会在开发过程中每隔几分钟就缩小一次——我会编写一些对über minifer友好的编码标准。minifer不应该不可预测到需要定期检查。这也只是一个过时的轶事,但我在大约四年前在一些真实的JavaScript上尝试了Google Closure Compiler,在gzipping之后,gzipping比minification对在线字节的影响要大得多,GCC实际上生成了一个比YUI压缩程序略大的文件。当然,它会根据输入的不同而有所不同,而GCC很可能从那时起就有所改进。哦,还有:除非你编写的代码没有格式错误——我认为编写格式不错误的代码当然是个好主意!要获得非常好的压缩效果,有些东西可能会被破坏。例如,闭包编译器将删除死代码、重命名函数和变量等,除非您编写的代码没有格式错误。然而,与空白清除器相比,它的功能非常强大。“要获得非常好的压缩效果,有些东西可能会被破坏。”在这一点上,我会仔细观察我额外减少了多少,以及额外的开发难题是什么。我仍然不会在开发过程中每隔几分钟就缩小一次——我会编写一些对über minifer友好的编码标准。minifer不应该不可预测到需要定期检查。这也只是一个过时的轶事,但我在大约四年前在一些真实的JavaScript上尝试了Google Closure Compiler,在gzipping之后,gzipping比minification对在线字节的影响要大得多,GCC实际上生成了一个比YUI压缩程序略大的文件。当然,它会根据输入的不同而有所不同,而且GCC很可能从那时起有所改进。哦,还有:除非您编写代码 为了避免格式错误——我认为编写非格式错误的代码当然是个好主意!