Yii フレームワーク ミドルウェア: キャッシュと CDN を使用して Web ページの読み込み速度を高速化します
Web 開発では、ページの読み込み速度がユーザー エクスペリエンスと Web サイトのパフォーマンスに直接影響します。 Web ページの読み込み速度を向上させるには、キャッシュと CDN (コンテンツ配信ネットワーク) を使用してページの送信と表示を高速化します。 Yii フレームワークには、キャッシュや CDN の使用をサポートする豊富な機能が用意されていますが、この記事では、Yii フレームワークのミドルウェアを使用して Web ページの読み込み速度を高速化する方法を紹介します。
1. Yii フレームワークのキャッシュ機能の使用
Yii フレームワークは、ページ フラグメント キャッシュ、データ キャッシュ、HTTP キャッシュなどを含む豊富なキャッシュ サポートを提供します。これらのキャッシュ メカニズムは、構成ファイルまたはコードを通じて使用できます。
1.1 ページ フラグメント キャッシュ
ページ フラグメント キャッシュは、特定のページ パーツのコンテンツをキャッシュし、データベース クエリとレンダリング プロセスを削減し、それによってページの読み込み速度を向上させることができます。 Yii フレームワークでは、ウィジェットを使用してページフラグメントキャッシュを実装できます。
次は例です。ページにコメント リストがあると仮定します。ウィジェットを使用してコメント リスト部分のコンテンツをキャッシュできます:
use yiiwidgetsFragmentCache; echo FragmentCache::widget([ 'id' => 'comment-list', 'duration' => 3600, 'dependency' => [ 'class' => 'yiicachingDbDependency', 'sql' => 'SELECT COUNT(*) FROM comment', ], 'content' => function () { // 渲染评论列表的代码 }, ]);
上記のコードでは、 idを設定する 「comment-list」のキャッシュフラグメントで、キャッシュ時間は3600秒です。また、コメント数が変化したときにキャッシュを自動的に無効にするデータベース依存関係も使用します。こうすることで、コメント リストの内容はキャッシュの有効期限が切れた場合にのみ再生成されるため、ページの読み込み速度が向上します。
1.2 データ キャッシュ
データ キャッシュとは、クエリ結果や計算結果をメモリやその他のストレージ メディアにキャッシュし、キャッシュされたデータを次のリクエストで直接使用できるようにすることで、クエリや計算の繰り返しを回避します。計算が動作します。
Yii フレームワークでは、キャッシュ コンポーネントを使用してデータ キャッシュを実装できます。以下は、キャッシュ コンポーネントを使用してクエリ結果をキャッシュする例です:
// 获取缓存组件 $cache = Yii::$app->cache; // 查看缓存是否存在 $key = 'user_list'; $data = $cache->get($key); if ($data === false) { // 如果缓存不存在,则查询数据库并缓存查询结果 $data = User::find()->all(); $cache->set($key, $data, 3600); } // 使用缓存数据 foreach ($data as $user) { // 显示用户信息 }
上記のコードでは、Yii フレームワークの組み込みキャッシュ コンポーネント Yii::$app->cache をキャッシュ操作に使用します。まずキャッシュからデータを取得しようとしますが、取得に失敗した場合は、データベース クエリを実行してクエリ結果をキャッシュします。このようにして、次のリクエストでキャッシュされたデータを直接使用できるため、データベース クエリの繰り返しが回避され、ページの読み込み速度が向上します。
2. CDN を使用して Web ページの読み込み速度を高速化します
Web ページを送信するときに、CDN を使用してページの読み込み速度を高速化できます。 CDN (Content Delivery Network) は、Web ページの静的リソース (画像、スタイル シート、スクリプトなど) をユーザーに近いサーバーにキャッシュすることで、伝送距離を短縮し、ページの読み込み速度を向上させます。
Yii フレームワークでは、CDN を使用して静的リソースのリクエストを高速化できます。以下は、CDN を使用してイメージをロードする例です。
use yiihelpersHtml; // 使用CDN来加载图像 echo Html::img('http://cdn.example.com/images/logo.png');
上記のコードでは、Yii フレームワークによって提供される Html ヘルパー クラスを使用してイメージ タグを生成し、CDN のアドレスを指定します。このようにして、ページが読み込まれるときに画像が CDN サーバーから読み込まれるため、ページの読み込み速度が向上します。
静的リソースのロードに加えて、CDN を介して静的リソースのストレージを高速化することもできます。 Yii フレームワークでは、クラウド ストレージ サービス (Qiniu Cloud、Alibaba Cloud など) を使用して静的リソースを保存および配布できます。以下は、Qiniu Cloud Storage を使用してイメージを保存および配布する例です:
use yiihelpersHtml; // 使用七牛云存储来加载图像 echo Html::img('http://cdn.example.com/images/logo.png', ['style' => 'width: 200px; height: 100px;']);
上記のコードでは、Yii フレームワークによって提供される Html ヘルパー クラスも使用してイメージ タグを生成し、Qiniu Cloud Storage を指定します。アドレスと画像のスタイル。このようにして、ページが読み込まれるときに、画像が Qiniu クラウド ストレージ サーバーから読み込まれるため、ページの読み込み速度がさらに向上します。
要約すると、Yii フレームワーク ミドルウェアを使用してキャッシュと CDN アクセラレーション メカニズムを実装すると、Web ページの読み込み速度が大幅に向上し、ユーザー エクスペリエンスと Web サイトのパフォーマンスが向上します。この記事が、Yii フレームワークを使用して Web アプリケーションを開発する際のページ速度の向上に役立つことを願っています。
参考資料:
以上がYii フレームワークミドルウェア: キャッシュと CDN を使用して Web ページの読み込みを高速化しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。