投稿日:2003年08月29日 作成鷹の巣

No.11937 検索結果が表示されるまでに「検索中・・・」と表示させたい。



検索結果が表示されるまでに「検索中・・・」と表示させたい。

No.11937 投稿時間:2003年08月29日(Fri) 01:20 投稿者名:Mariko URL:

PHP3でデータベースを作成しましたが、データ量が多いためキーワード検索等を行うと
すごく時間がかかったしまいます。。。
検索結果を表示されるまでの間、「検索中・・・」という言葉、もしくはGIFイメージを出す事は
可能でしょうか?
Perlを用いて作成をこころみてみましたができません。。。
よい作成方法がわかる方は教えていただけないでしょうか??
よろしくお願い致します。


検索をおこなうメインスクリプトの前で。

No.11941 投稿時間:2003年08月29日(Fri) 08:41 投稿者名:APACHE URL:http://kemuri-net.dip.jp/~server/

脳内スクリプトなので実際に動くかどうかは不明ですが

検索をおこなうメインスクリプトの前に

echo "検索処理中";

といれて「検索処理中と表示」
検索結果を一時保管してlocationヘッダーで
その一時保管ファイルを表示するページに移動。

とかできそうですが。
効率は悪いですけど...


DB にキューを。

No.11952 投稿時間:2003年08月29日(Fri) 23:53 投稿者名:帯鯖 URL:

帯鯖@名古屋です。

# PHP には疎いですが、客観論として回答致します。

コミットするのに時間がかかるわけですよね。
であれば、下記の順で、キューを入れてコミットするまでの間に、意図したい MIME text/html を挟みこむとよいと思いますが。

1. DB にキューを入れる
2. MIME text/html を発行(処理中メッセージ表示)
3. DB コミット
4. 新規 MIME text/html を定義(メッセージ表示画面からフォワード:応答結果を表示)

上記 2 と 4 の MIME text/html が同じ宣言のものであれば、処理中メッセージと DB 応答結果が重複画面に出てしまします。
よって、メッセージ表示と応答結果を別と考えるならば、画面はそれぞれ別である必要が出てきます。

1つのコードの中で2つ以上の MIME-Type を定義できればそれでよいですが、
できなければフォワード処理を使い、2段階で(2画面で)MIME-Type を発行する仕組みを作るべきだと思います。

JSP/servlet では、DB がコミットできたかどうかの true/false を取得し、
それによって if 文で転送先画面を切り替えて処理結果 ResultSet を次の画面に渡すという手法がよく用いられています。


# そもそも、コミットにそれほど時間がかかるのは、SQL 文が繁雑化している可能性がありそうです。


> 脳内スクリプトなので実際に動くかどうかは不明ですが
> > 検索をおこなうメインスクリプトの前に
> > echo "検索処理中";
> > といれて「検索処理中と表示」
> 検索結果を一時保管してlocationヘッダーで
> その一時保管ファイルを表示するページに移動。
> > とかできそうですが。
> 効率は悪いですけど...


|目次|掲示板|過去ログ目次|▲頁先頭|