表示させたいデータを、登録・更新などのデータ変更したタイミングで静的HTMLファイルとしてフィックスさせ、次回の変更まではその静的ファイルを表示させたいと思っております。何かしらそういった技法をご存知でしたら、ご教授頂けたらと思います。宜しくお願いいたします。

現在の所、postgresql(mysql)に格納しているデータを、ページを開く毎ににDB接続し、動的にHTMLとして書き出し、表示させている状態なのですが、今回の制作物は1ページ毎の処理(可変ループ、データ量多数、多重分岐)が多く、帯域等が優秀なサーバーを用いても、ページを表示させるまでに大幅な時間を費やしております。簡単に言うと重すぎて閲覧するのがダルくなっています。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:chatoraneko No.1

回答回数221ベストアンサー獲得回数0

ポイント10pt

cronにて定期に静的ページを出力させます。

カラムをひとつ追加して更新時の時間を保存し

cronで数時間ごとなどにタイムスタンプをチェックし

変更されていなければ静的ページを変更しない

などの方法があります。

id:ska-ken

ありがとうございます。参考にさせて頂きます。PHPとpostgresql(mysql)のみで実現できないものでしょうか?ご存知の方いらっしゃいましたらご教授願います。

2005/05/12 00:17:23
id:FMR No.2

回答回数406ベストアンサー獲得回数0

ポイント15pt

登録・更新などのデータ変更したタイミングでhtmlを生成しDBにhtmlファイルを格納しておくってのはダメでしょうか?

id:ska-ken

大胆な発想ですね。ありがとうございます。それも視野に入れてみます。

2005/05/12 13:05:14
id:typista No.3

回答回数359ベストアンサー獲得回数7

ポイント30pt

http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/php_k03.htm

PHP 基礎編3 - 標準ファイル I/O fopen、unlink、flock、file、opendir、readdir - SAK Streets

静的なページをhoge.html、これを出力するPHPをhoge.phpとします。(ska-kenさんの例でいうとDBアクセスしてHTML出力するPHP)

hoge.phpでは、echo or printを直接せずに、hoge.htmlへファイル出力するように変更します。

→ ①fopen、②fwrite、③fclose


もし、内容確認した上で、静的ページを更新したい場合は、一旦hoge_new.htmlなどに出力して目視確認した上で、リネーム(手動またはPHPを使うならcopy or rename)で良いと思います。

※PHPを使う場合は、管理者のみしか実行できないような仕組みもあったほうが無難ですが。

id:ska-ken

これなら確実に実現できますね。ありがとうございます。他の技法もお待ちしております。

2005/05/12 16:58:07
id:hukko No.4

回答回数26ベストアンサー獲得回数0

ポイント25pt

http://smarty.php.net/

Smarty : Template Engine

(なにか勘違いしていたらすみません)

「登録・更新などのデータ変更したタイミングで静的HTMLファイル」を生成(サーバー上にHTMLファイルとして保存)すればいいのでは?と思うのですが・・・。


他の案として、Smartyを使うと、「(Smartyが生成した)キャッシュがあれば、スクリプトを実行せずにキャッシュを表示する」というようなコントロールができます。ご参考まで。

id:ska-ken

typistaさんのご意見同様、情報更新時のタイミングで、phpファイル関数を利用して実現しました。他の方々のご意見も今後の参考にさせて頂きたいと思います。ありがとうございました。

2005/05/16 14:17:29

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません