ホームページ php教程 php手册 簡易ページバッファリング技術(1)

簡易ページバッファリング技術(1)

Jun 21, 2016 am 09:10 AM
cache echo print readfile

ページ

まえがき
実際、それをテクノロジーと呼んでも、本当のテクノロジーとは言えないかもしれません。これはあくまで私自身のページ処理方法であり、もちろん他の人の考えと一致する可能性もあります。でも、やっぱり素敵な名前を付けたいですよね。では、ここで私が言っているページバッファリングとは何でしょうか?これは、動的に生成されたページを次回使用するために保存することを意味します。こうすることで、次回アクセスするときに動的に生成する必要がなくなる可能性があります。キャッシュを提供するようなものです。私のサイト、そしておそらくあなたのサイトでも、ユーザーに表示されるページが動的に生成されるように、テンプレートなどの技術を使用しています。しかし、あなたにとってこのようなページは、他の人にとっても同様である可能性があります。つまり、一定期間は変化しないでしょう。前回生成された結果が、訪問したユーザーに直接返された方がよいと思いませんか。次回?生成時間が短縮され、効率が高くなります。ウェブサイトが発展するにつれて、速度と効率の問題を依然として考慮する必要があると思います。ここで私の実装を紹介します。皆さんのお役に立てれば幸いです。それは単なるアイデアであり、具体的な実装はありません。


使用条件
すべてのWebページで使用するのが最善ですか? 必要ないと思いますし、不可能です。バッファリングできる理由は、次のアクセスの内容が前回のアクセスの内容と全く同じである可能性があるためである。したがって、頻繁に変更されるページには適していません。たとえば、ページにカウント情報を表示することは適切ではありません。また、動的ページを最初に変数に出力せずに、echo、print、readfile、その他の出力を使用してユーザーに直接返す場合、個人的にはまだ不可能だと思います。出力結果を取得してファイルに保存することができないためです(とにかく、私は長い間考えてきましたが、出力を切り取ってファイルにリダイレクトできるものを何も思いつきませんでした)。動的ページのより適切な処理は、出力結果を文字列に配置することです。ということで、利用条件は

基本的にページは変わらない
動的ページの処理結果は文字列に保存できる

動的ページの処理にはテンプレートクラスを使うと良いです。テンプレートに置換可能な変数を設定し、実際の値に応じて対応するテンプレート内の変数を置換することにより、この種のテンプレート クラスの処理は、処理されたページを保存するのに非常に適しています。もちろん、テンプレートクラスを使用せずに文字列処理によって出力結果を生成することも可能です。それをどのように行うかについては議論されません。


実装
前述したように、これは実際の実装ではなく、実装のアイデアです。
処理の流れ:
1. アクセス要件に応じてバッファファイル名を生成します。
2. ファイル名が存在するかどうかを確認し、ファイルが存在しない場合は、動的ページを生成し、同時に結果を出力し、存在する場合はステップ 3 を実行します。
3. ファイルの変更時間と動的ページ生成に関連するファイルの変更時間をカウントします。

4. バッファ ファイルの変更時間を他のページの変更時間と比較します。他のページの変更時間がバッファ ファイルの変更時間よりも大きい場合、動的結果が変化する可能性があると考えられます。動的ページの結果は再生成され、ファイルに保存され、結果が出力されます。それ以外の場合は、ステップ 5 に進みます
5. バッファ ファイルが最新の場合は、バッファ ファイルを直接出力します

これは私の処理です。バッファファイルの保存方法としては、一時ディレクトリを作成する方法と、データベースを使用して処理する方法があります。データベースを使用する場合は、データベースに生成時刻フィールドを追加し、この時刻フィールドを他のファイルの更新時刻と比較するなど、ファイルが最新であるかどうかを判断する方法も変更する必要があります。誰もが自分なりの方法を考えています。



このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

入社してキャッシュとは何かを理解した 入社してキャッシュとは何かを理解した Jul 31, 2023 pm 04:03 PM

実際は次のようなものです。当時、私のリーダーは私に perf ハードウェア パフォーマンス監視タスクを与えました。perf を使用するプロセス中に、コマンド perf list を入力すると、次の情報が表示されました。私のタスクは、これらのキャッシュ イベントを有効にすることです。しかし重要なのは、これらのミスやロードが何を意味するのか全く分からないということです。

テクノロジーの世界を探索できる、厳選された 5 つの Go 言語オープンソース プロジェクト テクノロジーの世界を探索できる、厳選された 5 つの Go 言語オープンソース プロジェクト Jan 30, 2024 am 09:08 AM

今日の急速な技術発展の時代では、雨後の筍のようにプログラミング言語が出現しています。多くの注目を集めている言語の 1 つは Go 言語です。Go 言語は、そのシンプルさ、効率性、同時実行の安全性などの機能により多くの開発者に愛されています。 Go 言語は、多くの優れたオープンソース プロジェクトがある強力なエコシステムで知られています。この記事では、厳選された 5 つの Go 言語オープンソース プロジェクトを紹介し、読者を Go 言語オープンソース プロジェクトの世界へ導きます。 KubernetesKubernetes は、自動化されたオープンソースのコンテナ オーケストレーション エンジンです。

Go 言語開発の要点: 5 つの人気のあるフレームワークの推奨事項 Go 言語開発の要点: 5 つの人気のあるフレームワークの推奨事項 Mar 24, 2024 pm 01:15 PM

「Go 言語開発の要点: 5 つの人気フレームワークの推奨事項」 高速で効率的なプログラミング言語として、Go 言語はますます多くの開発者に好まれています。開発効率を向上させ、コード構造を最適化するために、多くの開発者はフレームワークを使用してアプリケーションを迅速に構築することを選択します。 Go 言語の世界には、選択できる優れたフレームワークが数多くあります。この記事では、5 つの人気のある Go 言語フレームワークを紹介し、読者がこれらのフレームワークをよりよく理解して使用できるように、具体的なコード例を示します。 1.GinGin は高速な軽量 Web フレームワークです。

キャッシュを使用するとコンピュータの速度が向上するのはなぜですか? キャッシュを使用するとコンピュータの速度が向上するのはなぜですか? Dec 09, 2020 am 11:28 AM

キャッシュを使用すると、CPU の待ち時間が短縮されるため、コンピューターの速度が向上します。キャッシュは、CPU とメイン メモリ DRAM の間に位置する小さいながらも高速なメモリです。キャッシュの機能はCPUのデータ入出力速度を高めることであり、キャッシュは容量は小さいが速度が速く、メモリは速度は低いが容量が大きいため、スケジューリングアルゴリズムを最適化することでシステムのパフォーマンスを向上させることができます。大幅に改善されました。

キャッシュとは何ですか? キャッシュとは何ですか? Nov 25, 2022 am 11:48 AM

キャッシュはキャッシュメモリと呼ばれ、中央処理装置とメインメモリの間にある高速かつ小容量のメモリで、通常は高速SRAMで構成され、CPU向けのこの種のローカルメモリが導入されています。 CPU とメモリ間の速度差がシステム パフォーマンスに及ぼす影響を軽減または排除します。キャッシュ容量は小さいですが高速、メモリ速度は遅いですが容量は大きく、スケジューリングアルゴリズムを最適化することでシステムのパフォーマンスが大幅に向上します。

nginx リバースプロキシキャッシュのチュートリアル。 nginx リバースプロキシキャッシュのチュートリアル。 Feb 18, 2024 pm 04:48 PM

nginx リバース プロキシ キャッシュのチュートリアルは次のとおりです。 nginx のインストール: sudoaptupdatesudoaptinstallnginx リバース プロキシの構成: nginx 構成ファイルを開きます: sdonano/etc/nginx/nginx.conf キャッシュを有効にするには、http ブロックに次の構成を追加します: http{...proxy_cache_path /var/cache/nginxlevels=1:2keys_zone=my_cache:10mmax_size=10ginactive=60muse_temp_path=off;proxy_cache

SpringBootプロジェクトでキャッシュを使用する方法 SpringBootプロジェクトでキャッシュを使用する方法 May 16, 2023 pm 02:34 PM

Preface キャッシュは、頻繁にアクセスされるデータをメモリに保存し、データベースなどの基盤となるデータ ソースへの負担を軽減することで、システムのパフォーマンスと安定性を効果的に向上させることができます。誰もがプロジェクトで多かれ少なかれこれを使用したことがあると思いますが、私たちのプロジェクトも例外ではありませんでしたが、最近会社のコードをレビューしていたとき、非常に愚かでレベルの低い記述でした。 {Useruser=cache.getUser();if(user!=null){returnuser;}//データベースからユーザーを取得=loadFromDB(id);cahce.put(id,user);returnu

Nginx キャッシュの構成計画と、関連するメモリ使用量の問題を解決する方法 Nginx キャッシュの構成計画と、関連するメモリ使用量の問題を解決する方法 May 23, 2023 pm 02:01 PM

nginx キャッシュの 5 つのオプション キャッシュ 1. 従来のキャッシュの 1 つ (404) この方法では、nginx の 404 エラーをバックエンドに送り、proxy_store を使用してバックエンドから返されたページを保存します。設定: location/{root/home/html/;#ホームディレクトリexpires1d;#Webページの有効期限error_page404=200/fetch$request_uri;#404 /fetchディレクトリに誘導される} Location/fetch/{#404ここに指定されています内部 ;#このディレクトリは外部から直接アクセスできないことを示します

See all articles