現在の所、postgresql(mysql)に格納しているデータを、ページを開く毎ににDB接続し、動的にHTMLとして書き出し、表示させている状態なのですが、今回の制作物は1ページ毎の処理(可変ループ、データ量多数、多重分岐)が多く、帯域等が優秀なサーバーを用いても、ページを表示させるまでに大幅な時間を費やしております。簡単に言うと重すぎて閲覧するのがダルくなっています。
http://www.linux.or.jp/JM/html/cron/man5/crontab.5.html
Manpage of CRONTAB
cronにて定期に静的ページを出力させます。
カラムをひとつ追加して更新時の時間を保存し
cronで数時間ごとなどにタイムスタンプをチェックし
変更されていなければ静的ページを変更しない
などの方法があります。
登録・更新などのデータ変更したタイミングでhtmlを生成しDBにhtmlファイルを格納しておくってのはダメでしょうか?
大胆な発想ですね。ありがとうございます。それも視野に入れてみます。
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を使う場合は、管理者のみしか実行できないような仕組みもあったほうが無難ですが。
これなら確実に実現できますね。ありがとうございます。他の技法もお待ちしております。
Smarty : Template Engine
(なにか勘違いしていたらすみません)
「登録・更新などのデータ変更したタイミングで静的HTMLファイル」を生成(サーバー上にHTMLファイルとして保存)すればいいのでは?と思うのですが・・・。
他の案として、Smartyを使うと、「(Smartyが生成した)キャッシュがあれば、スクリプトを実行せずにキャッシュを表示する」というようなコントロールができます。ご参考まで。
http://sunset.freespace.jp/smarty/
Smarty(暫定)
typistaさんのご意見同様、情報更新時のタイミングで、phpファイル関数を利用して実現しました。他の方々のご意見も今後の参考にさせて頂きたいと思います。ありがとうございました。
ありがとうございます。参考にさせて頂きます。PHPとpostgresql(mysql)のみで実現できないものでしょうか?ご存知の方いらっしゃいましたらご教授願います。