青木ITプランニング
PHP、Smarty、ケータイサイトについて発信中。書籍 「Smarty動的webサイト構築入門」(技術評論社) 好評発売中
-
処理時間が長いとき、すばやくページ表示したい(1)
フォーム送信後、サーバ側の処理時間が長いとき、なかなか画面が変わらないことがあります。サーバ側の処理時間が長いときでも、すばやくページを表示するいくつかの方法について説明します。
(1) もっとも簡単な方法
ページ遷移は form.html ⇒ task.php ⇒ thanks.html とします。
task.phpは「処理中です」と表示し、本来の処理をし、thanks.htmlへページ移動します。
<html> ~省略~ 処理中です <?php flush(); ?> <? sleep( 10 ); // 長い処理のフリ ?> <meta http-equiv="refresh" content="0; url=thanks.html" /> </html>
flush()を呼ぶと、すぐに「処理中です」がブラウザに返されるので、フォーム入力画面が「処理中です」に切り替わります。長い処理が終わった後に、thanks.htmlへページ移動するための<meta>タグがとんでもないところにありますが、IEもFirefoxも許容してくれます。
最近は、処理と表示を分けていることが多いので、この方法は使えないかもしれません。また、htmlとphpが混在することになるので、デザイナ、プログラマの両方から嫌な顔をされるかもしれません。
なお、IE6では、flush()前に、約300バイト以上の文字列が必要でした。
Leave a reply



最近のコメント