24

joomlaのGlobalConfigでは、2つのキャッシングが保守的でプログレッシブですが、両方の違いは何ですか?

4

3 に答える 3

32

保守的なキャッシュは、標準的なタイプのキャッシュです。仕組みは次のとおりです。

  • 訪問者が Web サイトのページにアクセスします。

  • Joomla は、キャッシュ ディレクトリにそのページの有効期限が切れていないバージョンがあるかどうかを確認します。

  • キャッシュされたページが存在する場合 (および有効期限が切れていない場合)、Joomla はそれを訪問者に提供します。それ以外の場合は、ページのキャッシュされたバージョンが作成され、そのキャッシュされたバージョンが訪問者と後続のすべての訪問者に提供されます。 (「それ」とはページを意味します) 有効期限が切れていない限り。

上記のシナリオは典型的なものであり、ほとんどの開発者がキャッシュを実装する方法です。

プログレッシブ キャッシュは次のように機能します。

  • 訪問者が Web サイトのページにアクセスします。

  • Joomla は、そのページのキャッシュ バージョンがその訪問者用に存在し、まだ有効期限が切れていないかどうかを確認します。

  • そのキャッシュされたページが存在する場合、それは訪問者に提供されます。そうでない場合、Joomla はその特定の訪問者のためにキャッシュされたページを作成し、それを訪問者に提供します。

  • 別の訪問者 (そのページに行ったことがない) がそのページにアクセスした場合、Joomla は前の訪問者のキャッシュされたページを提供せず、その代わりに、そのページのキャッシュされたバージョンを
    そのユーザー専用に作成し、次にそれを提供します。彼。

ご覧のように、プログレッシブ キャッシュは、ページのキャッシュ バージョンの有効期間内に同じ訪問者が同じページにアクセスした場合にのみ、パフォーマンスを向上させます。ほとんどのシナリオでは、プログレッシブ キャッシュを使用すると、キャッシュを無効にするよりもはるかにパフォーマンスが大幅に低下します。これは、Joomla がほぼすべての訪問でリクエストを処理し、ページのキャッシュ バージョンを作成し、そのページを訪問者に提供する必要があるためです。 (キャッシュが無効になっているシナリオでリクエストを処理してページを提供する代わりに)。ああ、Joomla によって生成されるすべてのキャッシュ ファイルのことを忘れないでください。トラフィックの多いニュース Web サイト (ページ数が多い) を使用している場合に、キャッシュ フォルダーにこれらのファイルがいくつあるか想像することしかできません。

プログレッシブ キャッシュはどのような状況で役立つのでしょうか。たとえば、動画の Web サイト (YouTube に似ています) を持っているとします。訪問者の場所やブラウザの設定、インストールされているプラ​​グインに基づいて、各訪問者にカスタマイズされたページを表示したいと考えています。したがって、訪問者がロードするページごとに、この情報を使用してそのページのカスタマイズされたバージョンを生成し、それをキャッシュします。訪問者が同じページに再度アクセスした場合、Joomla はカスタマイズされたページを生成するために作業をやり直す必要はありません。

もちろん、プログレッシブ キャッシュが本当に役立つシナリオはたくさんありますが、私たちの意見では、プログレッシブ キャッシュは、Web サイトが多くの訪問者を受け取り、それらの訪問者がほとんどリピーターである場合にのみ考慮すべきです。それ以外の場合に使用すると、Web サイトのパフォーマンスに大きな影響を与えます。

ここから抜粋。

于 2013-06-05T06:17:49.607 に答える
11

訪問者ごとのユニーク キャッシュの場合

  • 保守的なキャッシュは、サイトへのすべての訪問者に、まったく同じキャッシュされたコンテンツを表示します。

  • ただし、プログレッシブ キャッシュでは、各ユーザーのコンテンツが一意にキャッシュされます。

@Tornadoのコメントが提供するリンクから

于 2012-10-19T08:26:19.710 に答える
1

プログレッシブ キャッシングは、バッファーがプログレッシブに更新されるという違いを除いて、保守的なキャッシングと同じように機能します。

JApplicationCMS (プログレッシブ キャッシュが設定されている) のレンダリング機能を見ると、ログインしているユーザーには適用できないことがわかります。 https://github.com/joomla/joomla-cms/blob/staging/libraries/cms/application/cms.php

if ($this->isSite() && $this->get('caching') && $this->get('caching', 2) == 2 && !JFactory::getUser()->get('id'))
    {
        $caching = true;
    }

さらに、同じページのキャッシュ ID を複数のブラウザーまたは IP でダンプすると、同じキャッシュ ID が取得されます。

プログレッシブ キャッシングの典型的な作業は、JCache の getWorkarounds と setWorkarounds で行われます。ただし、cbuffers が扱いにくくなり、問題が発生する場合があることに注意してください。

于 2015-02-27T14:45:22.617 に答える