我希望改善应用程序的前端性能,所以我在Firefox中使用了YSlow工具。当我为我的应用程序运行此工具时,在YSlow等级选项卡中,它出现了“使用gzip压缩组件F级”的问题。似乎是我们需要在从服务器发送到客户端时压缩文件(js,css)以增加服务器响应时间。
我的应用是一个Struts Java应用程序。任何人都可以让我知道如何从服务器压缩和发送前端UI文件(JS,CSS),以便响应时间增加,我的页面很快?在服务器上用Java压缩这些文件需要做些什么?
答案 0 :(得分:6)
我建议使用Servlet Filter(自servlet 2.3规范以来)
gzip过滤器已有详细记录,因此无需重新发明轮子:
另外,一些servlet容器可以动态执行gzip。看看this related question。
答案 1 :(得分:2)
为了提高Java EE Web应用程序的客户端性能, WebUtilities java库可能会有所帮助。
它也是available through maven central。
从版本0.0.4起,它有助于遵循以下性能实践。
答案 2 :(得分:1)
我建议使用Granule Tag lib http://code.google.com/p/granule/
它gzip并组合由g:compress标签包装的javascripts
代码示例是:
<g:compress> <script type="text/javascript" src="common.js"/> <script type="text/javascript" src="closure/goog/base.js"/> <script> goog.require('goog.dom'); goog.require('goog.date'); goog.require('goog.ui.DatePicker'); </script> <script type="text/javascript"> var dp = new goog.ui.DatePicker(); dp.render(document.getElementById('datepicker')); </script> </g:compress> ...
答案 3 :(得分:0)
您通常在appserver / servletcontainer级别配置它。我不知道你正在使用哪一个,所以这里只是一个Tomcat目标示例。在/conf/server.xml
配置<Connector>
组件,如下所示:
<Connector compression="on">
这就是全部。只需添加compression="on"
即可。其他服务器提供类似的设置。请参阅其文档了解详细信息它们通常完全相同,因为它们是建立在Tomcat之上的。
有关Java EE webapplication透视图中的更多YSlow提示,您可能会发现此blog article更有用。
答案 4 :(得分:0)
您确定要尝试压缩JS和CSS而不是尝试缩小它吗?通常,首次访问后,浏览器会缓存JS和CSS,前提是您的Web服务器正确设置了缓存标头。在实践中,我发现缩小JS和CSS通常足以满足浏览器的初始下载。
有许多JS minifiers。例如,一个位于here。