从grails控制器压缩json响应
我有一些非常巨大的json响应被发送到客户端浏览器,我正试图找出如何压缩它们。我已尝试使用ui性能插件,如回答此问题时所述: 但它不起作用。我的json文件大小仍然相同(~40MB) 我也尝试过使用yui minify资源插件,但没有用。我还能怎么做? 另外,是否建议将如此巨大的json文件发送到浏览器?(前端的某个下拉选择允许浏览器在每次用户选择选项时请求此大小的json响应)从grails控制器压缩json响应,json,grails,controller,compression,gzip,Json,Grails,Controller,Compression,Gzip,我有一些非常巨大的json响应被发送到客户端浏览器,我正试图找出如何压缩它们。我已尝试使用ui性能插件,如回答此问题时所述: 但它不起作用。我的json文件大小仍然相同(~40MB) 我也尝试过使用yui minify资源插件,但没有用。我还能怎么做? 另外,是否建议将如此巨大的json文件发送到浏览器?(前端的某个下拉选择允许浏览器在每次用户选择选项时请求此大小的json响应) 谢谢 您可以直接在tomcat中完成 可以直接在server.xml中执行,也可以在tomcat插件中执行 更新
谢谢 您可以直接在tomcat中完成 可以直接在
server.xml中执行,也可以在tomcat插件中执行
更新
您也可以尝试手动操作,例如:
def zipStream = new GZIPOutputStream( response.outputStream )
zipStream.write( yourJsonString.getBytes() )
zipStream.close()
response.outputStream
你可以直接在tomcat中完成
可以直接在server.xml中执行,也可以在tomcat插件中执行
更新
您也可以尝试手动操作,例如:
def zipStream = new GZIPOutputStream( response.outputStream )
zipStream.write( yourJsonString.getBytes() )
zipStream.close()
response.outputStream
尝试一下Grails 3.0和更高版本基于Spring Boot,支持此功能。您应该查看各个版本的文档,但在Grails 3.2.2中,您可以将其添加到应用程序的第2部分。yml
:
server:
compression:
enabled: true
mime-types: application/json,application/xml,text/html,text/xml,text/plain
Grails3.0及更高版本基于SpringBoot,支持此功能。您应该查看各个版本的文档,但在Grails 3.2.2中,您可以将其添加到应用程序的第2部分。yml
:
server:
compression:
enabled: true
mime-types: application/json,application/xml,text/html,text/xml,text/plain
嘿,我也试过了。我在应该gzip的mime类型中添加了application/json、text/json。但它不起作用。有什么原因吗?你是怎么测试的?压缩只能在我的Chrome开发工具的网络下的客户端中看到。如您提供的链接所示。我的HTTP响应中没有内容编码头。响应内容大小如何?它仍然很大。大约40 MB。嘿,我也试过了。我在应该gzip的mime类型中添加了application/json、text/json。但它不起作用。有什么原因吗?你是怎么测试的?压缩只能在我的Chrome开发工具的网络下的客户端中看到。如您提供的链接所示。我的HTTP响应中没有内容编码头。响应内容大小如何?它仍然很大。大约40 MB。嘿,这也没什么好运气。我添加了它(通过在BuildConfig.groovy中包含代码来安装,并尝试了使用和不使用Config.groovy中提供的链接中提到的代码),但我的应用程序不会加载json文件本身。有一次抛出500个内部错误,另一次错误连接被拒绝。>>上一次由Misha在5年前更新,看起来不太好:/嘿,这也没什么好运气。我添加了它(通过在BuildConfig.groovy中包含代码来安装,并尝试了使用和不使用Config.groovy中提供的链接中提到的代码),但我的应用程序不会加载json文件本身。有一次抛出500个内部错误,另一次连接被拒绝。>>上一次由Misha在5年前更新,看起来不太好:/my application.yml的第二部分应该是什么?您的意思是在“spring:”下,Grails使用---将配置拆分为多个部分(根据YAML规范),但是如果不命名这些部分,那么在何处放置设置就有点混乱。我所说的第二部分是指第一个定界符之后第二个定界符之前的任何地方。我的应用程序的第二部分应该是什么?您的意思是在“spring:”下,Grails使用---将配置拆分为多个部分(根据YAML规范),但是如果不命名这些部分,那么在何处放置设置就有点混乱。我所说的第二部分是指第一个定界符之后,第二个定界符之前的任何地方。