我正在开发一个 Laravel 5.1 项目,使用大量 ajax 调用返回 html block 。
为了优化网站的速度,我想实现私有(private)和公共(public)响应缓存。使用以下代码可以正常工作:
return response()
->json($result)
->header('Cache-Control', 'public, max-age=300');
然而,以这种方式使用它不会保留在 300 秒内更新的帐户对象。
当且仅当返回的对象已更新时,是否有可能允许我清除请求的响应缓存?
最佳答案
也许您可以尝试使用如下所示的服务器端缓存。抱歉,这很粗糙
function sometest(User $user)
{
/** . . .conditions to check if some data has changed . . . **/
$jsonResponse = Cache::remember(Auth::id() . "_sometest", 300, function () use ($user)
{
$result = $user->all(); //get result here
return $result;
});
return response()->json($jsonResponse);
}
您可以在这里阅读 Cache
你也可以试试
- config caching : php artisan 配置:缓存
- route caching : php artisan 路由:缓存
- 并利用memcached如果你能的话。
关于php - Laravel 5.1 面向对象的 ajax 响应缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36134149/