Django 可以为单个请求发送多部分响应吗?

Can Django send multi-part responses for a single request?

如果这是一个愚蠢的问题,我深表歉意。我目前正在针对 Django API(我也维护它)进行写作,并希望在某些情况下能够在单个请求产生大量对象的情况下生成多个部分响应,而不是发送整个 JSON 结构作为单个响应。

有没有办法做到这一点?它需要遵循一个标准,以便使用不同请求库的客户端系统能够使用该功能。

问题是客户端系统在询问时不知道响应中将出现的对象数量。

如果这不可能,那么我将不得不在客户端链接请求 - 例如,获取前 20 个对象,如果响应表明会有更多对象,则请求接下来的 20 个对象等。这种方法是一个好的解决方法,但任何后续请求都依赖于先前的响应。我宁愿问一次,然后得到某种多部分响应。

据我所知,不,您至少还不能发送 Multipart http responseMultipart 响应仅在 http 请求中有效。为什么?因为据我所知没有浏览器完全支持这个。

  1. Firefox 3.5: 只渲染最后一部分,其他忽略。
  2. IE 8: 像 text/plain 一样显示所有内容,包括边界。
  3. Chrome 3: 将所有内容保存在一个文件中,不渲染任何内容。
  4. Safari 4:将所有内容保存在一个文件中,不呈现任何内容。
  5. Opera 10.10:有点奇怪。开始将第一部分渲染为 plain/text,然后清除所有内容。加载进度条卡在31%。

(数据来源 Diego Jancic)