2

ユーザーがHTMLの知識がなくてもページを編集できるように、ページをhtml文字列(CKEditorで生成)としてデータベースに保存しているサイトがあります。このサイトでは、ギャラリーのある各ページの画像ギャラリー(ユーザーの要件により、私はそれを制御できません)も広範囲に使用しています。これにより、サイトが非常に遅くなります。ガイドでYiiの最適化について読み、読み込み時間を少し改善するクエリキャッシュを実行しましたが、それでも低速です。

ページが更新されるまでに1か月もかかる可能性があるため(変更があった場合のみ)、ページが変更されるまで静的ページをエミュレートするサイト全体のYiiキャッシュ手法はありますか?私は管理者ではないため、APCやその他の拡張機能のインストールを制御できません。

最適化のアイデアも歓迎します。

ここでサイトを見ることができます

4

2 に答える 2

3

「決定的な答え」を与えるのは難しいですが、あなたができる最も簡単なことは(Yiiの決定的なガイド:パフォーマンスで言及されている最適化を行うことの次に)ページキャッシングを使用することです

APCまたはmemcachedは使用できないため、CFileCacheを介してファイルキャッシュを使用してページ全体をキャッシュすることをお勧めします。更新されたらすぐに、適切なCacheDependencyを介してキャッシュを無効にする必要があります。CActiveRecordのafterSaveフックを使用してキャッシュを無効にするために、Flushableキャッシュ依存関係拡張機能を使用しました。実装は簡単で、仕事をします。

編集:あなたのサイトを見て、Bootstrapを使用しているメニューから判断してください(おそらくYii-Boosterを使用していますか?)。サイトは確かに非常に遅いですが、それは実際にはすべてのリクエストでアセットを公開する拡張機能が原因である可能性があります。私はかつて、DEBUGモードのときにYii-Boosterの公開アセットでこの正確な問題を抱えていました(当時はDEBUGモードが無効になっているときにも発生しました)(https://github.com/clevertech/YiiBooster/pull/229)。

于 2013-02-11T09:03:40.437 に答える
0

Yii HTMLキャッシュを使用して、ページの完全なキャッシュを作成できます。それはあなたの資産にhtmlファイルを生成し、寿命が終わるかあなたがあなたの資産をクリアするまでそれを使用します。

beforeAction拡張機能をインストールし、コントローラーのafterRenderメソッドに数行追加するだけです。

于 2016-06-07T08:34:55.883 に答える