巨大なHTMLファイルが出来てしまう場合の対応方法を教えて下さい

[上に] [前に] [次に]
しんきち [E-Mail] 1999/06/29(火) 18:59:05
与えられた検索条件によりデータベースを検索し、その検索結果をテーブルとして
ブラウザに表示する CGI を作っています。
基本的には正しく動いているのですが、検索条件が甘い場合には、作成されるHTML
ファイルが巨大(1MB以上)になってしまうため、読み込み時間が非常に長くなる
だけでなく、マシンによってはメモリ不足を起こしてしまい、困っています。
このようなケースに対処するには、どうすれば良いでしょうか?
アドバイスをお願いいたします。

ばかぼん 1999/06/29(火) 19:27:06
1.テーブルをやめる。(多少軽くなる)
2.ある件数で切る。(その旨のメッセージを表示する)
3.次ページ/前ページ機能。
個人的には、3番が一番良いのでは?と思います。
一度に全て検索してくるのではなく、最初に50件検索し、
次ページで次の50件を検索するようにする。
今のCGIをチョット改造すればできると思いますよ。

ふじ 1999/06/29(火) 19:27:46
ヒットした件数か、書き出す文字列のバイト数で判断して、
大きすぎる場合は処理を中断してメッセージを出せばいいんじゃないでしょうか。

ばかぼん 1999/06/29(火) 19:59:34
1.テーブルをやめる。(多少軽くなる)
2.ある件数で切る。(その旨のメッセージを表示する)
3.次ページ/前ページ機能。
個人的には、3番が一番良いのでは?と思います。
一度に全て検索してくるのではなく、最初に50件検索し、
次ページで次の50件を検索するようにする。
今のCGIをチョット改造すればできると思いますよ。

ばかぼん 1999/06/29(火) 20:01:27
1回目送信して再読込したら同じのが入ってしまいました。
ごめんなさい。

しんきち [E-Mail] 1999/06/30(水) 09:40:44
アドバイスありがとうございます。
「次ページ/前ページ機能」が「チョットの改造」で出来るのなら、やはりそれがいいでしょうね。
その辺のテクニックについて解説されたホームページ等ご存知でしたら、ご紹介下さい。
以上、宜しくお願いします。

ばかぼん 1999/06/30(水) 13:59:46
>その辺のテクニックについて解説されたホームページ等
これについては、申し訳ありませんが見たことがありません。
私の例でよろしければポイントをいくつか紹介します。
1.CGIのパラメータ(多分今は検索条件だけですか?)に表示するページ
  数と1ページに表示する件数を追加する。
2.表示するページ数は、4で埋め込むhiddenタグのページ数に
  CGIを呼ぶときJavaScriptで+1または−1する。
3.検索してHTMLを作るとき、2ページ目の表示で1ページに50件の表示なら
  51件目から100件目までを出力し、それ以外はスキップする。
4.CGIの出力するHTMLの中にhiddenタグを使って、ヒット件数、
  表示したページ数、1ページに表示する件数を埋め込んでおく。
ちなみにCGIはCで組みました。
仕事がらみですのでソースは公開できません。
基本的には検索そのものは変える必要はなく、ヒットしたデータの何件目から何件目
を表示してやるかだけなんですけど。
説明が下手ですいません。

じぇい 1999/06/30(水) 14:37:16
フリーのCGIで次ページ前ページ機能のついてるやつを探してソースを見てみたらいいと思います。

[上に] [前に] [次に]