【问题标题】:Load Cakephp view file fastly with many images使用许多图像快速加载 Cakephp 视图文件
【发布时间】:2013-03-18 18:48:20
【问题描述】:

我正在使用 CakePHP 为云文件管理网站工作,用户可以在其中上传大量文件,如图像、文档、pdf 等以及所有上传的文件将在 aws s3 存储桶中,在本地没有任何内容。

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

现在的问题是,当有很多文件时,它会花费大量时间来加载文件夹的相应文件。例如:我有一个包含 50 多个图像的文件夹以及一些 doc 文件。当我选择该文件夹时,加载该文件夹需要几分钟的时间,而且每次都需要这么长的时间。

我已经为该 ajax 加载的视图使用了缓存,并且还在 jquery ajax 设置中将 cache : true 设置为该视图文件。

类似:

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

请帮帮我。

【问题讨论】:

  • 您是否尝试过缩小瓶颈的范围?检索文档列表有问题吗?加载文件?您问题中提供的代码未提供有关该部分的信息。
  • 不幸的是,我对 Amazon s3 没有任何经验,但快速搜索了“s3 的缓存控制”; stackoverflow.com/questions/10435334/… 和这个labnol.org/internet/… 也许这些链接可以帮助你进一步?

标签: php cakephp caching amazon-s3 cakephp-2.1


【解决方案1】:

您可以尝试压缩文件系统上的文件,但老实说,您最好将图像托管在某种 CDN 服务上,在那里它们有自己的缓存并使用它们的 url 来加载您的图像.

我从工作经验中知道这一点。我们使用蛋糕 1.3。即使使用有效的内存缓存,从蛋糕中缓存通常也很糟糕。使用 CDN。

【讨论】:

  • 我真的很想知道 OP 的“加载需要几分钟”是什么意思。如果视图本身缓存在 cakephp 中,则渲染它可能永远需要几分钟。我怀疑要么在浏览器中加载实际图像需要时间,要么在控制器或视图中完成其他操作。此外,CakePHP 缓存不会影响图像等的加载,只会影响视图本身。要缓存图像,网络服务器应发送正确的缓存头
  • @thaJeztah 是的,先生,我的主要问题是图像缓存。因此,请帮助我解决每次由 ajax 刷新视图并选择文件夹时从 s3 加载的图像缓存问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-05
  • 2015-04-22
  • 2017-10-20
  • 2016-09-28
  • 2018-02-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多