【发布时间】:2016-11-26 15:18:17
【问题描述】:
我有一个网站,客户端搜索一个词并通过 ajax 请求检索结果。在 php 方面,被调用的脚本检查缓存的日期(缓存是文件),如果它早于确定的时间,则刷新结果,否则返回缓存文件内容:die(file_get_contents($cache_path));
缓存时间是几个小时,刷新只需要几秒钟,所以大部分请求最终都会在缓存响应中结束。
所以我认为使用header("location: $cache_path"); 对服务器来说压力会更小,因为它只是告诉浏览器从缓存文件中获取内容而不通过脚本传递。
缺点是缓存文件路径会公开(这不是最大的问题,因为内容是相同的),但是,你知道,给资源位置永远不会好......
那么,在性能方面,file_get_contents 和重定向之间有很大区别吗?平均缓存文件大小为 120kb...还有其他想法和建议吗?
【问题讨论】:
-
任何请求中最长的部分通常是网络延迟和开销。通过重定向客户端,您会引发另一个请求,这对他们来说可能会更慢。如果您担心性能,请设置内存缓存。
标签: php ajax caching header file-get-contents