プログラム実行中の待機ページを作りたいのですが方法がわかりません。
私は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でのprint関数
-
ホームページビルダーで作ったh...
-
CGIへ飛ばずに処理だけさせたい
-
CGI掲示板のSendmail送信について
-
正規表現の o
-
CGI/perlのエラー
-
DBの更新について困っています
-
wordの数式について 定積分を書...
-
ラジオボタンが両方とも選択で...
-
jcode.pl 使い方
-
「value」に2つの値をセットす...
-
[HTML]プルダウンメニューの横...
-
INPUT TYPE
-
ディレクトリのファイル数取得
-
チェックボックスの返す値
-
カウントダウンのタグ
-
複数ボタンのvalueを送れない
-
索引を目次の該当ページへ入れ...
-
Lightboxの表示位置に関して質...
-
別formのhidden項目を自form値...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlからパラメータで、cgiに渡...
-
sendmail 送信先を複数設定す...
-
iis+cgiでmultipart/form-data...
-
フォントサイズを変えるには?
-
CGI経由でのPDFファイルをダウ...
-
perl/cgi リダイレクトができない
-
2つのドメイン、同じサーバー。...
-
サーバー上のPDFにCGIでパスワ...
-
クッキー書き込みが正常に行わ...
-
cgi(perl) sendmailの使い方
-
CGI
-
クッキーを使って投票欄に名前...
-
TOK2で基礎的なCGIをUPしたが動...
-
クオートの多重入れ子をするには?
-
CGIでテキストボックスの内容に...
-
フォームメール(iモード用)で...
-
プログラム実行中の待機ページ...
-
ホームページビルダーで作ったh...
-
substrで数値を抽出してのマッ...
-
perlで重複データを集計
おすすめ情報