レスポンスを少しずつ返しながら表示する

webシステムでネットワーク系の処理をやらしてて、なかなかレスポンスが返ってこない時画面が固まってしまってよろしくない。
利用者は裏で何してるか意識するわけもないので単に「重い」とだけ感じてしまう。

こういう時はサーバーがおかしいと思ってページを離れたり、更新や読み込み停止をしてしまわないように何か配慮する必要がある。

で、手軽な方法として処理してる事が分かるように順次結果を表示していく方法がある。
PHPではこんな感じ。

<?php
for($i = 0; $i < 10; $i++) {
	echo '処理を開始しました';
	// 何かしらの重い処理
	echo '[OK]<br />';
	ob_flush();
	flush();
}

ob_flushとflushはセットじゃないとブラウザに結果が返ってこないです。
サンプル

これをやっとくだけでシステムがちゃんと動いてるのが可視化されるんで利用者の反応が随分変わると思います。