2

私はtornado2.3(python 2.7.3)を使用しており、postgresql(9.2.1)データベースに対して大量のクエリを実行しています。これは完了するのに約8秒かかり、コールバック(momokoコネクタを使用してpostgresを使用)を使用してページをクエリ結果で段階的に更新できるかどうか疑問に思いました。竜巻のデモフォルダで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])

これらすべてが完了するのを待ってからテンプレートでレンダリングする代わりに、コールバックを実装し、各クエリの完了をそのコールバックにヒットさせてWebページを更新することはできますか?

4

0 に答える 0