我的前端Web应用程序在缓存的端点上调用我的python Flask API,并返回一个大约80,000行和1.7兆字节的JSON。
我知道我可以拆分此端点以获得性能提升,但出于好奇,还有哪些其他很好的选项可以提高所有这些内容的下载速度?
到目前为止我能想到的选项:
1)压缩内容。但后来我必须在前端解压缩
2)使用像gRPC这样的东西
更多信息: 我的烧瓶服务器使用gevent的WSGIServer,端点代码如下。 PROJECT_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
答案 0 :(得分:1)
也许你可以流式传输文件?我没有办法在没有某种下载或等待的情况下将文件传输80,000行。
这将是一个压缩和解压缩的机会,就像你建议的那样。绝对要确保JSON缩小。
这也取决于项目,也许你可以让用户完全下载它?
答案 1 :(得分:1)
执行此操作的最佳方法是将JSON分解为块并通过将生成器传递给Response
来传输它。然后,您可以在收到数据时呈现数据,或显示显示已完成百分比的进度条。我有一个如何在从AWS s3 here下载文件时流式传输数据的示例。这应该指向正确的方向。