从Grails控制器gzipping json响应

时间:2014-05-05 07:34:18

标签: json grails controller compression gzip

我有一些非常大的json响应被发送到客户端浏览器,我正在试图弄清楚如何压缩它们。我已尝试使用ui-performance插件,如此问题的答案中所述: How to compress output from a grails controller?

但它没有用。我的json文件仍然大小相同(~40MB) 我也试过使用yui-minify资源插件,但无济于事。我怎么能这样做? 另外,建议将这么大的json文件发送到浏览器吗? (前端的某个下拉选项允许浏览器在每次用户选择选项时请求此大小的json响应)

谢谢!

3 个答案:

答案 0 :(得分:2)

你可以直接在tomcat http://viralpatel.net/blogs/enable-gzip-compression-in-tomcat/

中完成

直接在server.xmltomcat plugin

内进行

更新

您也可以尝试手动操作,如:

def zipStream = new GZIPOutputStream( response.outputStream )  
zipStream.write( yourJsonString.getBytes() )  
zipStream.close()  
response.outputStream

答案 1 :(得分:2)

Grails 3.0及更高版本基于Spring Boot,它支持此功能。您应该查看个人版本的文档,但在Grails 3.2.2中,您可以将其添加到application.yml的第2部分:

server:
    compression:
        enabled: true
        mime-types: application/json,application/xml,text/html,text/xml,text/plain

答案 2 :(得分:0)