我正在使用tornado 2.3(python 2.7.3)并且正在对postgresql(9.2.1)数据库运行大量查询。这需要大约8秒钟才能完成,我想知道是否可以使用回调(使用momoko连接器到postgres)来逐步更新带有查询结果的页面。我在tornado demos文件夹中找到了facebook示例,但是需要单击才能刷新 - 但我希望在检索查询结果时调用UI模块进行渲染。
当前的(未完成的)代码如下所示:
results = OrderedDict()
cursor = yield gen.Task(self.db.execute, 'select location, string_of_words from source;')
for verse in cursor.fetchall():
queries = {}
id = 0
for word in verse[4].split(' '):
queries[id] = ['select worddetailsbyword(%s)',(word,)]
id += 1
cursors = yield gen.Task(self.db.batch, queries)
for key,cursor in cursors.items():
worddata = {}
if verse[0] not in results.keys():
results[verse[0]] = []
results[verse[0]].append(cursor.fetchone())
for loc, words in results.items():
self.write("<h2>%s</h2>" % loc)
for word in words:
self.write("<div>%s</div>"%word[0])
我是否可以实现回调并让每个查询完成点击该回调并更新网页,而不是等待所有这些完成,然后然后在模板中呈现?