私はCakePHPを使用したクラウドファイル管理のサイトで作業しています。このサイトでは、ユーザーは画像、ドキュメント、PDFなどの多数のファイルをアップロードでき、アップロードされたファイルはすべてaws s3バケットにあり、ローカルにはありません。
これらのドキュメントは、jstreeieを使用してロードされます。ユーザーがjstreeフォルダーをクリックすると、そのフォルダーの対応するドキュメントがAJAXを介してビューに読み込まれます。
問題は、ファイルが多数ある場合、フォルダの対応するファイルをロードするのに非常に長い時間がかかることです。例:50以上の画像といくつかのドキュメントファイルを含むフォルダーがあります。そのフォルダを選択すると、そのフォルダをロードするのに数分かかり、毎回その時間がかかります。
私はすでにそのajaxがロードされたビューにキャッシュを使用し、cache : true
jqueryajaxセットアップでそのビューファイルに設定しました。
何かのようなもの:
public $cacheAction = array(
'index' => 36000,
'ajax_documents' => 3600 // this is the view file that render documents
);
.....
public function ajax_documents() {
// Here is all query data that set to corresponding ajax_document.ctp file
// I also cached the query result for each folder request
}
そしてjQueryで
$.ajax({
type: 'GET',
cache: true,
ifModified: true,
data : {},
url: '..ajax_documents',
......
});
しかし、何も機能していません。それでも、レンダリングには膨大な時間がかかりますajax_document.ctp
。ファイルのキャッシュが正しく機能しているので、ファイルが表示されています。
それで、この状況で私はあなたの助けとこの宿舎を後押しする方法とこの種の状況のために従うべき最良の方法は何であるかについての提案を必要としますか?
ノート:
主な問題は、ビューが読み込まれるたびにs3から画像が読み込まれることです。したがって、基本的にその画像キャッシュのソリューションが必要です。
これを手伝ってください。