Django/Python中是否有类似PHP flush()的函数,允许我将部分HTTP响应发送给客户端?

7 投票
3 回答
901 浏览
提问于 2025-04-16 19:17

根据Yahoo的性能建议

当用户请求一个页面时,后端服务器可能需要200到500毫秒的时间来拼凑出这个HTML页面。在这段时间里,浏览器处于闲置状态,因为它在等待数据到达。在PHP中,有一个叫做flush()的函数。这个函数可以让你把部分准备好的HTML响应发送给浏览器,这样浏览器就可以开始加载一些组件,而你的后端仍然在忙着处理剩下的HTML页面。

示例:

   ... <!-- css, js -->
    </head>
    <?php flush(); ?>
    <body>
      ... <!-- content -->

在Django/Python中,有没有类似于PHP的flush()的函数?

谢谢

3 个回答

2

你可以用 yield 来返回部分结果,而不是用 return 来返回全部结果。

2

http://www.evanfosmark.com/2008/06/simple-output-buffering-in-python/ - 这是一篇关于这个主题的好文章。使用里面提供的任一选项都能满足你的需求。

2

不,可以直接回答。

详细的回答要看你在网络服务器和Python之间使用了什么:你可以用WSGI来实现,但这不是一件简单的事情。

也许可以从这里开始了解一下?http://www.python.org/dev/peps/pep-0333/#the-start-response-callable

撰写回答