2

私はマジェントでフルページキャッシュを見てきましたが、これと動的ブロックの送信方法に意味がありません。

動的データを含むブロックの場合、バスケット コンテンツや最近表示されたものなどのブロックを生成するために、アプリケーションをブートストラップし、レイアウトを構築する必要があります。

サーバーは現在、より多くの作業を行っています。

これは正しいですか、もしそうなら、これを回避する方法

4

3 に答える 3

3

私の2セント:

それは、FPC をどのように行っているかによって異なります...

「プロキシキャッシュ」

nginx や varnish または [ここに挿入] などの他のキャッシング フロントエンド/プロキシを使用している場合は、実際に負荷が軽減されます。

  1. キャッシュされた後、php、magento、またはmysqlに触れず、静的ファイルを提供するだけのページの「フレーム」を取得するための1つのリクエスト。したがって、一度キャッシュされると、アプリをブートストラップしたり、レイアウト/構成/システム xml を読み込んで解析したりする必要はありません。
  2. 2 番目の要求は動的コンテンツを取得するためのもので、はるかに軽量です。はい、それでもconfig/layout/system xmlを使用する必要がありますが、それはすでにキャッシュされている必要があり、動的なニーズに応じて多くのブロックを作成/処理する必要はありません.

また、必要に応じて、ページの読み込み後に js が使用する情報を Cookie に保存し、2 番目のリクエストを実行しないようにすることもできます。これは、動的な情報がどれほど動的で機密性が高いかによって異なります。

したがって、リクエスト フローは次のようになります。

  1. リクエスト -> nginx/varnish/etc(超高速) -> レスポンス ...
  2. ajax リクエスト -> 動的コンテンツ用の Magento (ページ全体を処理する場合は処理が軽くなります) -> 応答 -> js 要素を置き換えます。

はい、追加の往復料金を支払いますが、顧客のために即座にロードするものを取得し、ajax 要求が処理されている間、ブラウザーはサーバーから画像/css/その他の js をプルすることができます。

「マジェントFPC」

正直なところ、エンタープライズ版がどのように機能するかはわかりませんが (コードを読んでいないだけです)、ほとんどの (すべてではない) 処理が処理される前に、キャッシュ プロセッサを接続できるセクションがあります。その環境では、アプリケーションはすでにブートストラップされ、構成の一部が読み込まれているため、実際にキャッシュから FPC を取得し、プレースホルダーを特定の情報に置き換えて、1 回の要求で送信することができます。

再び要求フロー:

リクエスト -> Magento (ルーティング前など) -> パンチホール -> レスポンス。

そのため、動的コンテンツが存在するまでロードは開始されませんが、余分な往復はありません。


脳震盪:

どちらが最適かは、ニーズと設定によって異なります。これらは、私が見た異なるセットアップの 2 つに過ぎず、私のテストでは、どちらの方法も FPC をまったく使用していません。

HTH

于 2012-09-27T14:13:38.180 に答える
0

はい、2番目のリクエストがサーバーにヒットします。また、30 行目のレイアウトもロードします。これは、特定のハンドルがロードされることを意味します - デフォルト、customer_logged_out (または in)、およびコール コントローラ (何か不足していますか?)。このブログhttp://www.fabrizio-branca.de/make-your-magento-store-fly-using-varnish.htmlでは、プレースホルダーをデフォルトのハンドルに追加することをお勧めします。unsetChild メソッドを使用すると、呼び出しコントローラーでブロックを名前でロードできます。この理由は、いくつかのアラン・ストームのブログで説明されており、(私が思うに) 設定されていないブロックとは対照的に削除された問題のいくつかを扱う彼のモジュールです。キャッシュの無効化は、このモジュールでは実際には処理されません。たぶん、この投稿を表示する必要がありますmagento オープン ソースのフル ページ キャッシュ

于 2012-11-07T00:49:18.133 に答える