我可以使用回调逐步在网页上显示查询结果吗?

时间:2012-09-28 19:24:03

标签: python tornado

我正在使用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])

我是否可以实现回调并让每个查询完成点击该回调并更新网页,而不是等待所有这些完成,然后然后在模板中呈现?

0 个答案:

没有答案