加载Cakephp视图文件快速与许多图像


Load Cakephp view file fastly with many images

我正在为一个网站的云文件管理与CakePHP,用户可以上传大量的文件,如图像,文档,pdf等,所有这些上传的文件将在aws s3桶,没有在本地。

这些文档将使用jstreeie加载。当用户单击jtree文件夹时,该文件夹的相应文档将通过AJAX加载到视图中。

现在的问题是,当一个文件夹有很多文件时,加载相应的文件需要花费大量的时间。例如:我有一个文件夹,里面有50多张图片和一些文档文件。当我选择那个文件夹的时候它需要几分钟的时间来加载这个文件夹每次都需要这么多时间

我已经使用缓存的ajax加载视图,并设置cache : true在jquery ajax设置到该视图文件。

类似:

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加载图像。所以我需要图像缓存的解决方案。

请帮帮我。

你可以尝试压缩文件系统上的文件,但说实话,你最好把你的图像托管在某种CDN服务上,他们有自己的缓存发生,并使用他们的url来加载你的图像。

我从我的工作经验中知道这一点。我们用的是蛋糕1.3。一般来说,即使使用有效的memcache,从cake中进行缓存也是很糟糕的。使用CDN