0

tracerouteなどのいくつかのシステムコマンドの出力に依存するアプリケーションをPylonsで作成しています。コマンドが完了するのを待ってから一度に表示するのではなく、生成されたコマンドの出力を表示したいと思います。

私はこの質問への答えでPythonでコマンドの出力にアクセスする方法を見つけました:

Pythonでpingまたはtracerouteを実行し、生成された出力にアクセスするにはどうすればよいですか?

次に、生成されているときにこの情報をブラウザーに取得する方法を見つける必要があります。jQueryのloadContent()を使用して、スクリプトの出力をにロードすることを計画していました。問題は、Pylonsコントローラーが使用するreturnため、Pylonsがページをレンダリングし、Webサーバーがクライアントにコンテンツで応答する前に出力を完了する必要があることです。

Pylons内で生成されたコンテンツをページに表示する方法はありますか、それともPylonsの外部でスクリプトを使用して行う必要がありますか?

基本的に、私は次のようなことをしようとしています:http: //network-tools.com/default.asp?prog=trace&host=www.bbc.co.uk

4

3 に答える 3

1

このよくある質問のエントリをご覧になることをお勧めします。次に、JS を使用すると、新しいものを書き込む前に常に画面をクリアします。

于 2009-08-03T21:15:37.260 に答える
1

pexpectバッファリングなしで、出力をそのまま取得できます。

ユーザーのブラウザーで情報を迅速に更新するには、適切な AJAX 要求をサーバーに送信するそのブラウザーの JavaScript が必要です (厳密には必須ではありませんが、dojo または jquery を使用すると簡単になります)。新しい応答が来るとページを更新します。クライアント側の協力 (そして JS + AJAX はその協力を得るための最も簡単な方法です)、サーバー側だけでそれを行う賢明な方法はありません。

したがって、一般的なアプローチは次のとおりです。ブラウザーからAJAXクエリを送信し、サーバーにもう1行あるとすぐに応答させ、ブラウザーのJSがコンテンツを更新してすぐに別のクエリを送信し、サーバーが「すべて完了」マーカーで応答するまで繰り返します(たとえば、「空」の応答はその目的で機能する場合があります)。

于 2009-07-24T05:54:31.287 に答える