• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:プログラム実行中の待機ページを作りたいのですが方法がわかりません。)

プログラム実行中の待機ページを作りたい!方法は?

このQ&Aのポイント
  • プログラム実行中の待機ページを作る方法について教えてください。
  • Perlを使用してCGIを作成し、フォーム入力ページ、待機ページ、結果出力ページの3枚のHTMLページを出力します。
  • フォーム入力を基にPerlプログラムが動き、結果出力までに時間がかかるため、待機ページではGIF画像を表示して暇つぶしをします。

質問者が選んだベストアンサー

  • ベストアンサー
  • JaneDue
  • ベストアンサー率75% (263/350)
回答No.1

ページ移動は不要です。 移動させる手もありますが、どちらにしても一旦出力したものを書き換えるのでJavaScriptが必要になります。移動させる場合、直でリンクされてもこまるので、referrer調べたり sessionやcookie等で確認が必要になったり、またはjavaScript有効無効の考慮などかえって面倒になりますよ。 以下移動しないタイプの流れ ---------------------------------------------------------○○.cgi #!/usr/bin/perl $| = 1; #バッファ無効 # 考え方としては、処理の前にとにかく待機中画像までを表示。 # ただし途中まで。htmlは完了させない print "Content-type: text/html\n\n"; print <<EOL; <html><head></head><body> □□□□□□□□□□□□□□□□□□□□□□□□□<br> □□□□□□□□□□□□□□□□□□□□□□□□□<br> <script type="text/javascript"> document.write("<div id='watingDiv'>"); document.write("<img src='クルクル.gif'>ただいま処理中です。"); document.write("</div>"); </script> EOL # 時間のかかる本処理~ sleep 5; # 本処理が完了次第、JavaScriptで待機中divを消す print <<EOL; <script type="text/javascript"> document.getElementById('watingDiv').style.display='none'; </script> 処理が終わりました。<br> </body></html> EOL exit; --------------------------------------------------------------- ※□□□~はIE対策。(バイト数が少ないと勝手にバッファしてしまう)  もろちん削除してかまいません。 ※移動がよければ、最後にdivを消すのではなく、  location.href='完了ページ'; 等で飛ばしてやればよいでしょう。

関連するQ&A

専門家に質問してみよう