我正在使用cherrypy作为Web服务器,它能够流式传输某些方法的输出。
服务器使用yield
发送数据行,客户端使用onprogress
$.ajax
方法事件。
但启用cherrypy的“tools.gzip”配置会导致输出不被客户端缓存。实际上,除非服务器方法完全完成,否则不会调用客户端的onprogress
事件。似乎cherrypy压缩工具无法在流模式下压缩输出(它只能在完全获取时压缩输出)。
现在我的第一个问题是如何解决这个问题。如果它不可修复,我的第二个问题是如何使用特定方法来缓解樱桃压缩。
答案 0 :(得分:0)
您必须启用请求的流功能。
设置以下配置:
{'response.stream': True}
gzip工具会检查当前请求,并相应地查找stream
和响应。
有关详细信息:http://docs.cherrypy.org/en/latest/advanced.html#streaming-the-response-body