プログラム実行中の待機ページを作りたいのですが方法がわかりません。
私はPerlを使ってCGIを作成しようとしています。
出力するHTMLページは3枚です。
1、フォーム入力をするページ
2、Perlプログラムが動いている間の待機ページ
3、結果出力ページ
です。
1から得た情報をもとにPerlプログラムが動きます。ここはActionでページ移動します。
結果が出るまでにそこそこ時間がかかるので
2の待機ページにおいてGIF画像を出力し、暇を持て余さないようにします。
プログラムが終了すると3のページに移動し、結果を出力する。
というような仕様です。
このような事を実現できますか?
どのようにすれば実現できるでしょうか?
実際に実現している人はいるのですが仕組みがわかりません。
わかりにくい説明で申し訳ありませんがどなたご教授頂ければと思います。
宜しくお願い致します。
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が見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Python3プログラムについて 4 2023/05/21 14:55
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP $_SESSIONに渡した後はそのまま使っても問題ありませんか? 3 2022/11/08 22:17
- Chrome(クローム) PCの Google Chrome が頻繁に「ページが応答していません」となり作業が進みません。 1 2023/05/25 20:43
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Excel(エクセル) Excel 在庫管理について 3 2023/02/09 10:00
- サーバー 無料のレンタルサーバで、スクレイピング(?)はできますか? 2 2022/05/07 10:09
- その他(ブラウザ) IE・edgeで日増しに観られるサイトが減ってくる。 1 2022/10/04 22:40
- その他(プログラミング・Web制作) 入力フォームへ、データを自動的に入力するプログラム。どうやって作る? 4 2023/01/16 10:24
- その他(学校・勉強) この中で間違ってある説明はありますか?詳しい方に教えていただきたいです。 A. 1つのプログラムが複 2 2023/07/14 01:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで集計したい。
-
めちゃきれい
-
(フリーの)ツリー掲示版CGI、...
-
apacheでPerl CGIが作動せず、5...
-
CGI.pmはもう古い!?
-
POSTメソッドの最大容量について
-
3DCG
-
ホームページにメールフォーム...
-
cgiからsendmailを送信で文字化け
-
フォームを再送信しますか?
-
/bin/awk '{print $5}'ってどう...
-
入力フォーム(電話番号)
-
誕生日占いをプログラムで作成...
-
number 改行が追加できない
-
生成AI画像について
-
cgi アクセス制限 エラー
-
CGIの記述について教えてくださ...
-
CGIの設置が分かりません・・・
-
ホームページにCGIを設置したの...
-
ホームページにCGIを設置したの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
perl/cgi リダイレクトができない
-
htmlからパラメータで、cgiに渡...
-
フォントサイズを変えるには?
-
CGI経由でのPDFファイルをダウ...
-
CGI
-
プログラム実行中の待機ページ...
-
メイルフォームの本文が文字化け
-
Yomi-Searchのカテゴリを縦並び...
-
cgi(perl) sendmailの使い方
-
sendmail 送信先を複数設定す...
-
iis+cgiでmultipart/form-data...
-
サーバー上のPDFにCGIでパスワ...
-
<FORM TYPE="subumit">でデータ...
-
指定のフォルダに指定のファイ...
-
wordの数式について 定積分を書...
-
ラジオボタンが両方とも選択で...
-
select値をhiddenのvalueに渡し...
-
「value」に2つの値をセットす...
-
チェックボックスの返す値
-
INPUT TYPE
おすすめ情報