0

これに似た別のスレッドがあり、閉鎖され、有用な情報がありませんでした: https ://stackoverflow.com/questions/11955822/php-file-caching-vs-cache-through-htaccess

.htaccess を介してキャッシュする場合、php キャッシュ システムを実装する必要がありますか? これが私の現在の .htaccess キャッシュです。

<IfModule mod_headers.c>
    # Cache Media Files
    <FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf|mp3|mp4)$">
        Header set Cache-Control "public"
        Header set Expires "Mon, 20 Apr 2015 20:00:00 GMT"
        Header unset Last-Modified
    </FilesMatch>

    # Cache JavaScript & CSS
    <FilesMatch "\.(js|css)$">
        Header set Cache-Control "public"
        Header set Expires "Mon, 20 Apr 2015 20:00:00 GMT"
        Header unset Last-Modified
    </FilesMatch>

    # Disable Caching for Scripts and Other Dynamic Files
    <FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
        Header unset Cache-Control
    </FilesMatch>
</IfModule>

このファイル キャッシングを使用して、php キャッシング システムを構築すると、サイトがさらに改善されますか? それとも、.htaccess でデータを圧縮し、php を使用してキャッシュする方が理にかなっているでしょうか? どちらのキャッシング方法がサイトをより改善するか、または両方の使用が推奨されるかを理解しようとしています.

4

2 に答える 2

1

静的ファイルの場合、HTML ヘッダー タグと .htaccess によってそれらをキャッシュできます。ブラウザはそれらをローカル マシンにキャッシュします。

.PHP を使用した動的コンテンツの場合、ウィジェットやオブジェクトをキャッシュして、mysql データベースへのクエリ呼び出しを減らすことができます。

これを試すことができます。たとえば、$products を 600 秒でキャッシュし、PHP がデータベースに送信するリクエストは 1 つだけです。オンラインに 500 人の訪問者がいる場合でも、ページは最初の訪問者からの 1 つのクエリを使用して 500 にサービスを提供します。

<?php
    include("php_fast_cache.php");
    // try to get from Cache first.
    $products = phpFastCache::get("products_page");

    if($products == null) {
        $products = YOUR DB QUERIES || GET_PRODUCTS_FUNCTION;

        // set products in to cache in 600 seconds = 5 minutes
        phpFastCache::set("products_page",$products,600);
    }

    foreach($products as $product) {
        // Output Your Contents HERE
    }
?>

Wordpress を使用している場合は、すべてのキャッシュ プラグインを確認できます。それらは PHP ( Files または Memcache ) によってコンテンツをキャッシュし、.htaccess によって画像、css、js をキャッシュします。

サイトを高速化し、帯域幅/ CPUを節約するには、両方を一緒に使用する必要があります

于 2013-04-28T05:35:08.880 に答える
0

静的ファイルに対してのみクライアント側のキャッシュを実行しています。

PHPでのキャッシュは、まったく異なる問題、つまりアプリケーションのサーバー側のパフォーマンスの問題を解決します。したがって、サイトの読み込みが遅すぎる場合、またはサーバーの負荷が高くなる場合は、これを使用する必要があります。

サーバー側のキャッシュを実装する方法には多くの戦略があり、アプリケーションに最適なものはあなた次第です。

たとえば、SQLクエリの結果をキャッシュしたり、Webページ全体のHTML出力をキャッシュしたりできます。データが変更されたときのキャッシュの無効化を忘れないでください。

于 2013-02-03T09:01:56.797 に答える