私はマジェントでフルページキャッシュを見てきましたが、これと動的ブロックの送信方法に意味がありません。
動的データを含むブロックの場合、バスケット コンテンツや最近表示されたものなどのブロックを生成するために、アプリケーションをブートストラップし、レイアウトを構築する必要があります。
サーバーは現在、より多くの作業を行っています。
これは正しいですか、もしそうなら、これを回避する方法
私の2セント:
それは、FPC をどのように行っているかによって異なります...
nginx や varnish または [ここに挿入] などの他のキャッシング フロントエンド/プロキシを使用している場合は、実際に負荷が軽減されます。
また、必要に応じて、ページの読み込み後に js が使用する情報を Cookie に保存し、2 番目のリクエストを実行しないようにすることもできます。これは、動的な情報がどれほど動的で機密性が高いかによって異なります。
したがって、リクエスト フローは次のようになります。
はい、追加の往復料金を支払いますが、顧客のために即座にロードするものを取得し、ajax 要求が処理されている間、ブラウザーはサーバーから画像/css/その他の js をプルすることができます。
正直なところ、エンタープライズ版がどのように機能するかはわかりませんが (コードを読んでいないだけです)、ほとんどの (すべてではない) 処理が処理される前に、キャッシュ プロセッサを接続できるセクションがあります。その環境では、アプリケーションはすでにブートストラップされ、構成の一部が読み込まれているため、実際にキャッシュから FPC を取得し、プレースホルダーを特定の情報に置き換えて、1 回の要求で送信することができます。
再び要求フロー:
リクエスト -> Magento (ルーティング前など) -> パンチホール -> レスポンス。
そのため、動的コンテンツが存在するまでロードは開始されませんが、余分な往復はありません。
脳震盪:
どちらが最適かは、ニーズと設定によって異なります。これらは、私が見た異なるセットアップの 2 つに過ぎず、私のテストでは、どちらの方法も FPC をまったく使用していません。
HTH
はい、2番目のリクエストがサーバーにヒットします。また、30 行目のレイアウトもロードします。これは、特定のハンドルがロードされることを意味します - デフォルト、customer_logged_out (または in)、およびコール コントローラ (何か不足していますか?)。このブログhttp://www.fabrizio-branca.de/make-your-magento-store-fly-using-varnish.htmlでは、プレースホルダーをデフォルトのハンドルに追加することをお勧めします。unsetChild メソッドを使用すると、呼び出しコントローラーでブロックを名前でロードできます。この理由は、いくつかのアラン・ストームのブログで説明されており、(私が思うに) 設定されていないブロックとは対照的に削除された問題のいくつかを扱う彼のモジュールです。キャッシュの無効化は、このモジュールでは実際には処理されません。たぶん、この投稿を表示する必要がありますmagento オープン ソースのフル ページ キャッシュ