Я работаю над проектом Laravel 5.1, использующим много вызовов ajax, возвращающих блоки html.
Чтобы оптимизировать скорость работы сайта, я хочу внедрить частное и публичное кэширование ответов. это работает нормально, используя следующий код:
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);
}
Вы можете прочитать о здесь кэш
Вы также можете попробовать
Других решений пока нет …