- ベストアンサー
しばらくお待ちくださいダイアログ
よろしくお願いします。 web上で行うチェックプログラムを作成中なのですが、 チェック処理に時間がかかるため(~1分ぐらい)「しばらくお待ちください」のようなダイアログを表示させたいのですが可能でしょうか? 例えば、よくアプリなどをインストールする際に「次へ」を押して次の画面がアクティブになるまで「コピーしています、しばらくお待ちください」ダイアログを表示・・・みたいな感じのものです。 実際にはweb上で「チェック」ボタンを押して(=CGIが実行される)から、チェック画面結果のページがアクティブになるまで表示させるようにしたいです。 webサーバー・・・HP-UX web・・・IE CGI開発言語・・・Perl 開発端末・・・windows2000(Tera Term 使用) どなたか情報をお持ちの方いらっしゃいましたら、 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
開くのに時間がかかるページが表示されるまで ダイアログを表示するということでよろしいでしょうか? もしそうなら(違ったらごめんなさい) <!-- 次ページを開く側 --> window.open("wait.html","wait","top=300,left=300,width=100,height=100"); location.href="http://okweb.jp/"; <!-- wait.html ダイアログページ --> <html> <head> <title>待っててね</title> <script language="javascript"> <!-- function closeWait() { if(window.opener.closed) window.close(); else setTimeout('closeWait()',1000); } //--> </script> </head> <body onLoad="setTimeout('closeWait()',1000)"> 待ってます </body> </html> ページが変わったらダイアログを閉じる操作です。 ただしIEなど一部のブラウザだと window.opener.closedがバグで正しく使えないようです。 window.opener.closedについてはこちらの 「親ウインドウ有無の確認関数」で解決できます。 http://game.gr.jp/js-ml/samples/200102/openerTest.html
その他の回答 (1)
- osumitan
- ベストアンサー率33% (102/307)
CGIですから、クライアントからのリクエストが来ないと サーバ側から「チェックが終わったよ」といったお知らせを クライアントに伝えることはできないわけですし、 またクライアントからリクエストすれば(submitすれば)、 画面に表示した内容は消えてしまうことになるので、 待ちのメッセージを表示するのは難しいと思います。 自分がやっているシステムでは、画面下に横長で メッセージを表示する専用のフレームを設けているので、 メインのフレームではサーバ処理に対してリクエストを行い、 メッセージフレームに「処理中です…」と表示させています。 (ついでにJavascriptで一定間隔で点滅させてます)
お礼
ご回答ありがとうございました。 そうですか・・・実現は難しそうですね。。。 たまたまどこかのサイトで(←どこか忘れてしまったので探しているところです)「画面がアクティブになったら・・・」みたいなものを見かけたことがあったので可能なのかなと思ってしまいました。 少し甘かったようです。
お礼
ご回答ありがとうございます。 お返事が遅くなってしまって申し訳ありません。 上記を参考にボタンが押されたら(=CGI実行)ダイアログが表示するようにがんばってみたいと思います。 ありがとうございました。