我的前端web应用程序正在一个缓存的端点上调用python Flask API,并返回一个大约80000行长、1.7兆字节的JSON。在
我知道我可以拆分这个端点来提高性能,但是出于好奇,还有什么其他的好方法可以提高所有这些内容的下载速度?在
到目前为止我能想到的选择:
1)压缩内容。但是我必须在前端减压
2)使用gRPC之类的东西
更多信息: 我的flask服务器正在使用gevent的WSGIServer,端点代码如下。PROJECT\u DATA_CACHE是返回的已Jsonified数据:
@blueprint_2.route("/projects")
def getInitialProjectsData():
global PROJECT_DATA_CACHE
if PROJECT_DATA_CACHE:
return PROJECT_DATA_CACHE
else:
LOGGER.debug('No cache available for GET /projects')
updateProjectsCache()
return PROJECT_DATA_CACHE
最好的方法是将JSON分成块,并通过向
Response
传递生成器来流式处理。然后,您可以在接收数据时呈现数据,或者显示一个显示完成百分比的进度条。我有一个示例,演示如何将数据流化为从aws3here下载的文件。这会给你指明正确的方向。在也许你可以流式传输文件?如果不下载或等待,我看不出有任何方法可以传输80000行长的文件。在
这将是一个压缩和解压缩的机会,就像你建议的那样。一定要确保JSON被缩小。在
它还真的取决于项目,也许你可以让用户完全下载它?在
相关问题 更多 >
编程相关推荐