1

複雑な ExpressionEngine テンプレートを私の知る限り最適化しましたが、アプリケーション レベルの調整またはサーバー レベルの調整が必要かどうかにかかわらず、レンダリング時間を 1 秒未満にすることを目指しています。

問題のページは 195 のプロジェクトのグリッドで、それぞれに複数の一対多の関係 (クライアント、ベンダー、オフィスなど) があり、実際に表示され、フィルター可能です。これらの関係は Playa によって維持されます。

アンキャッシュ: 16.0904 秒、50.11MB、5264 クエリ

アプリケーションレベルのキャッシュ後: 2.0793 秒、28.37MB、476 クエリ

この低下は主に、このEE Wiki 最適化記事に従って、EE のテンプレート キャッシング、タグ キャッシング、およびチャネルの「無効化」パラメーターの結果です。

これはすべて、512MB のメモリを搭載した MediaTemple DV4 (LAMP) サーバーで発生しているため、この速度で破壊されると思います。本番サイトのトラフィックは、1 日あたり最大 4,000 ページビューです。

私がこれまでに思いついた唯一のアイデアは、注目のアイテムのみをロードし、(より大きく、最初は非表示の) コンテンツのチャンクを非同期的に保存することです。私がその考えを好まない唯一の理由は、SEO の潜在的な問題です。各プロジェクトには詳細ページがあるので問題ないかもしれませんが、これはすべて索引付けされている有用な情報と思われます。

ExpressionEngine のコアをハッキングせずに、最小ページ レンダリング時間を 1 秒未満に短縮する安全な方法はありますか? 私は単に失敗するように自分自身を設定しましたか?

4

2 に答える 2

1

これが非同期読み込みの優れた点です... SEO への影響が心配な場合は、ページネーション リンクをいくつか追加し、AJAX を初期化するときにそれらを JavaScript で非表示にします。キャッシュされていない 5,000 を超えるクエリは、IMHO ではまったく受け入れられません。1 日に 4,000 回のビューがあると、一部の人々はキャッシュを破るページビューに見舞われ、見栄えが悪くなります!

関係なく ...

私の推測では、キャッシュ後に残っているクエリのほとんどは Playa からのものです。それは多くのクエリを作成します。キャッシュリフレッシュのパラメーターを Playa タグのペアに直接追加すると、ここでさらに役立ちます。

アドオンを購入して支援する場合は、CE Cacheを強くお勧めします。それは、すべてをすくい上げてファイルとして、データベースに、または他の多くの一般的なサーバーレベルのキャッシュメカニズムを介してキャッシュするだけで、すべてのネイティブキャッシュに取って代わります.

幸運を。:)

于 2012-05-03T20:40:17.037 に答える
0

AJAX オンデマンド ロードとアグレッシブ キャッシングに関する優れた提案。

可能であれば、テンプレート コードをここまたは EE フォーラムに投稿してください。簡素化できる可能性があります。

さらにいくつかのアイデア:

  • 高度な条件を削除します (代わりに Mark Croxton の If/Else と Switchee を使用してください)
  • Channel Entries の代わりに Query Module または Solpace の Super Search を使用し、代わりに Playa モジュール タグを介して Playa を呼び出します。
  • 埋め込みを削除します。代わりにスニペットを使用するか、何も使用しない
  • テンプレートのセクションを削除し、特にクエリを多用するセクションがないか確認します

幸運を!

于 2012-05-04T01:24:40.787 に答える