1

私は現在、いくつかの HTML テーブルと div を出力し、開始<script type="text/javascript">タグを出力し、いくつかのプロセスをフォークしてテーブルを埋めるデータを収集する Perl スクリプトを持っています。これらのフォークされたプロセスは、JavaScriptdocument.getElementByIdステートメントを非同期的に出力して、テーブルと div を埋めます。私の Perl スクリプトは、すべての子プロセスを待機し、すべてが返されると、終了</script>タグを出力します。

あまりエレガントではないかもしれませんが、これは、順序付けられたテーブルに非同期的に返された結果を入力する方法です。結果が返されるときにテーブルの内容がロードされるのを本当に見たいのですが、Firefox は</script>タグを受け取るまで JavaScript をレンダリングしないようです。document.getElementByIdブラウザに送信される各ステートメントのレンダリングを強制する方法はありますか? 各ステートメントでスクリプトの開始タグと終了タグを出力できましたが、これは過剰に思えました。大量の非同期ステートメントの表示を他にどのように処理すればよいかわかりませんが、すべての提案を受け入れます。

ありがとう!

4

2 に答える 2

2

個別のスクリプト ブロックで実行する必要があります。<script>ブロックが完了するまで、ブラウザーはブロックの実行を開始しません。言語のセマンティクスにより、それはできません。

于 2011-06-16T17:13:43.597 に答える
0

あなたの説明は少し混乱しています。ステートメントdocument.getElementById()ではなく、言語構成体ではなく、ホスト オブジェクトのメソッドです。document

document.getElementByIdブラウザがページを再レンダリングする原因となるものは何もしません。で指定された ID を持つ要素を選択するだけdocumentです。

このように出力が絶えず更新される理由を知らずに何とも言えませんが、継続<script>的に実行するには別のブロックを使用する以外に選択肢がないかもしれません。

于 2011-06-16T17:14:44.333 に答える