データベースからPHPスクリプトによって生成されたJSONコンテンツをキャッシュしようとしています。データセットは非常に安定していますが、変更や追加はほとんどありません。意味データは何週間も変わらない。 問題はLOB列を含んでおり、読み込みにかなりの時間がかかり、テキストファイルからjsonを提供するのに比べて時間がかかります。gitは実際のデータベース呼び出しが遅くなることを意味します。キャッシングJSON:Apache、PHP、jQuery
データをページング付きの表に表示しています(データ型jqueryプラグイン)。ページ変更ごとに、前のページに戻るときにもデータがデータベースから再度フェッチされます。
私は、次の試してみた:
"beforeSend": function (request)
{
request.setRequestHeader("cache-control", "max-age=86400");
},
は動作しません。
私はmod_expiresをを試してみました:
ExpiresActive On
ExpiresDefault "access plus 4 hours"
ExpiresByType application/javascript "access plus 1 day"
ExpiresByType application/json "access plus 1 day"
は動作しません。
したがって、これらの設定はすべて、ファイルシステム上の実際のファイルのみであり、動的生成されたものではありません。
私はApache/PHPを使用して構成可能なアプローチを好むでしょう。なぜなら私はサーバーを完全に制御できないからです。最初の答え、BEFORE
EDIT:キー/値ストアは一種の困難avhieveすることですので、JSONは、複数のレコードが含まれていることを
注意。キーにはたくさんのものが含まれていなければなりません:クエリ/フィルタ式とページングのために要求されたページ。
編集2:
開発と製品。 Windowsが...あるので、memcachedのは本当にオプション...
EDIT 3ではありません。私は解決策をkristovaher試みたが、動作しません
。キャッシュヘッダーは常に応答に含まれておらず、いくつかplaingした後、私は問題を判断したと信じています。 NTLM認証を使用する必要があります。間もなく2回要求を行うとすぐに正常に動作しますが、ユーザーが再認証され、キャッシュコントロールヘッダーが "失われている"ようです。
おそらく、開発者としてブラウザキャッシュが無効になっている可能性があります。 – wormhit
POSTまたはGETのどのようなリクエストを使用していますか? – core1024
GETリクエスト。 @wormhit9:これまで言及したように、かつて私はそうしましたが、新しいFFをインストールして、両方ともtrue(デフォルト)のnetwork.http.use-cacheとbrowser.cache.offline.enableをチェックしたことを思い出してください。面白い私は最近、キャッシングの問題はありませんでしたが、Ctrl + F5は通常うまく動作します。 –