【发布时间】:2016-07-08 03:29:28
【问题描述】:
我正在开发一个 Laravel 5.1 项目,使用大量返回 html 块的 ajax 调用。
为了优化网站的速度,我想实现私有和公共响应缓存。使用以下代码可以正常工作:
return response()
->json($result)
->header('Cache-Control', 'public, max-age=300');
但以这种方式使用它不会保留在 300 秒内更新的帐户对象。
当且仅当返回的对象已更新时,是否有可能让我清除请求的响应缓存?
【问题讨论】:
-
要知道它们已更新,您必须发送实际请求。除非您在更新值时创建某种触发器,告诉缓存不应再使用它
-
是的,我可以使用带有更新状态的 md5 散列的电子标签。但我想把它作为最后的手段,同时寻找一种优雅的方式。
-
我通常使用 Redis 之类的东西在服务器端处理它。您可以在模型上放置一个观察者,然后遍历具有您的块的任何键并删除它们,以便在下一页加载时创建一个新的缓存版本。 (它们是特定于用户或页面,还是两者兼而有之?
-
你也许可以利用 localcache blogs.tensult.com/2020/01/27/…
标签: php laravel httpresponsecache