実行時間の長いレポートがあり、生成中に待機スピナーをユーザーに表示したいと考えています。私はすでにこの作業を行っていますが、最善の方法または正しい方法で行っているかどうかはわかりません。
これは ColdFusion を使用していますが、私が推測する任意の言語である可能性があります。ページの上部には、待機スピナーを表示する Javascript (jQuery) と、スピナーを下げる documentReady ハンドラーがあります。出力をフラッシュし (問題がある場合)、残りのコードがレポートの内容に対して機能します。これは決してスピナーをレンダリングするものではなく、サーバー上で何かをフラッシュしていたとしても、途中で何らかのバッファリングが発生し、ブラウザーは手遅れになるまでスピナー コードを認識しなかったと理論付けました。そこで、数百行の HTML コメントを吐き出すループをフラッシュする直前に追加しました。行数を微調整した後、それでうまくいきました。そのとき、他のサイトもそうだったと思いました。
しかし、今日、長時間実行されるジョブのステータスを行ごとに出力する私の別のページを見ているときに、そのページが各行の後にフラッシュされ、ブラウザーがそれを必要に応じて段階的にレンダリングすることに気づきました。これは上記の私の結論と一致せず、ルールが何であるかわかりません。これを行う予測可能な方法はありますか?ブラウザごとに異なりますか?
明確化:待機スピナーを実行する正しい方法を説明しようとする回答に感謝しますが、実際の質問を説明するための例として待機スピナーを使用しているだけです:ブラウザーがいつレンダリングを開始するかを予測する信頼できる方法はありますかネット経由でストリーミングされる HTML は? ブラウザが /html タグの動作を開始するのを待たないことは、観察によって明らかです。この質問は必ずしも Javascript とは関係ありません。たとえば、ステータスを示す 2 番目のページは純粋な HTML です。