ホームページ >バックエンド開発 >PHPチュートリアル >簡易ページバッファリング技術(1) (中国向け再版)_PHPチュートリアル
まえがき
実は、技術と呼んでも本当の技術とは言えないかもしれません。これはあくまで私自身のページ処理方法であり、もちろん他の人の考えと一致する可能性もあります。でも、やっぱり素敵な名前を付けたいですよね。では、ここで私が言っているページバッファリングとは何でしょうか?これは、動的に生成されたページを次回使用するために保存することを意味します。こうすることで、次回アクセスするときに動的に生成する必要がなくなる可能性があります。キャッシュを提供するようなものです。私のサイト、そしておそらくあなたのサイトでも、ユーザーに表示されるページが動的に生成されるように、テンプレートなどの技術を使用しています。しかし、あるページがあなたにとってこのようなものであるとしても、他の人にとっては依然としてこのようなものである可能性があります。つまり、前回生成された結果が直接ユーザーに返された方がよいと思いませんか。次回は誰が訪問しますか?生成時間が短縮され、効率が高くなります。ウェブサイトが発展するにつれて、速度と効率の問題を依然として考慮する必要があると思います。ここで私の実装を紹介します。皆さんのお役に立てれば幸いです。それは単なるアイデアであり、具体的な実装はありません。
使用条件
全てのWebページで使用するのがベストでしょうか?必要ないと思いますし、不可能です。バッファリングできる理由は、次のアクセスの内容が前回のアクセスの内容と全く同じである可能性があるためである。したがって、頻繁に変更されるページには適していません。たとえば、ページにカウント情報を表示することは適切ではありません。また、動的ページを最初に変数に出力せずに、echo、print、readfile、その他の出力を使用してユーザーに直接返す場合、個人的にはまだ不可能だと思います。出力結果を取得してファイルに保存することができないためです(とにかく、私は長い間考えてきましたが、出力を切り取ってファイルにリダイレクトできるものを何も思いつきませんでした)。動的ページのより適切な処理は、出力結果を文字列に配置することです。ということで、利用条件としては、
基本的にページは変わらない
動的ページの処理結果は文字列に保存できる
動的ページの処理にはテンプレートクラスを使うのが良い です。テンプレートに置換可能な変数を設定し、実際の値に応じて対応するテンプレート内の変数を置換することにより、この種のテンプレート クラスの処理は、処理されたページを保存するのに非常に適しています。もちろん、テンプレートクラスを使用せずに文字列処理によって出力結果を生成することも可能です。それをどのように行うかについては議論されません。
実装
前述したように、これは実際の実装ではなく、実装のアイデアです。
処理の流れ:
アクセス要件に従い、バッファファイル名を生成します
ファイル名が存在するか確認し、存在しない場合は動的ページを生成し、ページを保存し、同時に結果を出力して終了します。 ; 存在する場合は、ステップ 3 を実行します
ファイルの変更時刻と動的ページ生成に関連するファイルの変更時刻をカウントします
他のページの変更時刻とバッファ ファイルの変更時刻を比較します。がバッファ ファイルの変更時間より大きい場合、動的結果が変更される可能性があると考えられます。その後、動的ページ結果を再生成し、ファイルに保存して結果を出力し、それ以外の場合はステップ 5 を実行します。バッファファイルが最新の場合、バッファファイルを直接出力します
これは私の処理です。バッファファイルの保存方法としては、一時ディレクトリを作成する方法とデータベース処理を使用する方法があります。データベースを使用する場合は、データベースに生成時刻フィールドを追加し、この時刻フィールドを他のファイルの更新時刻と比較するなど、ファイルが最新であるかどうかを判断する方法も変更する必要があります。誰もが自分なりの方法を考えています。