【发布时间】:2016-01-08 08:34:39
【问题描述】:
假设我想做一个简单的循环,我需要一些时间来执行它。
for i in range(0, 100000000000):
print i
现在,这是我拥有的 Bottle 的代码。我想在循环结束之前打印出所有的中间输出,比如 1,2,3,4...。
import bottle
@bottle.route('/')
def home_page():
total = 0
for i in range(0, 100000000000):
total = i + 0
print i
return bottle.template('hello.tpl', {"total": total})
如何在迭代期间输出 i?我尝试了“响应”,但没有成功,无论如何它仍然必须返回。
【问题讨论】:
-
我认为您误解了网页如何工作的基本原理。您可能会通过使用 ajax 请求轮询后端来获得一些工作,但在大多数情况下,这并不是经常做的事情。另外,据我所知,“烧瓶”与您的问题无关
-
但仅此而已,网页通过发送请求并等待单个响应来工作。因此,您可以将进度存储在某处并继续发送有关该进度的请求,但这对于 stackoverflow 的答案来说太宽泛了。
-
实际上可以通过http将部分内容推送到浏览器。 PHP 实现了一个称为刷新的功能,如果我没记错的话,它会在给定的大小/时间阈值之后自动刷新内容,这可能会导致初学者认为部分响应是规则而不是例外。以这个问题为例:stackoverflow.com/questions/6300859/…