Ожидание большого набора данных для вычислений каждый раз, когда вы попадаете на маршрут, — отстой! А пользователи не хотят ждать, в наши дни у всех наблюдается короткий срок хранения, поэтому мы исправили это много лет назад, используя Cache. В Laravel есть Cache Fascad, который помогает нам кэшировать данные, и мы использовали Cache::remember(), который является отличным методом для кэширования некоторых данных на определенный период времени, пока они не истечет.
Но на недавнем мероприятии Laravel анонсировал новую функцию в Cache Fascad, названную «гибкой». Он использует новую функцию defer() laravel в фоновом режиме.
Cache::flexible() очень похож на Cache::remember(), с которым мы уже знакомы, и имеет очень мало изменений в коде, но оказывает огромное влияние на производительность. Вы предоставляете два значения времени вместо 1, в отличие от Cache::remember().
Если вы передаете 5 и 10 в качестве временного интервала для Cache::flexible(), тогда, когда пользователь впервые попадает на маршрут или посещает его, пользователь должен дождаться кэширования значений и продолжать переходить по маршруту в течение 5 секунд. затем он просто возвращает кэшированные значения, такие же, как Cache::remember(). Но вот что интересно: если пользователь перейдет по маршруту в течение 5–10 секунд (как мы указали), то Laravel все равно предоставит кэшированные значения для первого посещения в течение этого периода времени и запустит фонового работника для повторного кэширования значений. И когда пользователь снова посещает маршрут, он получает обновленные данные, но на этот раз не дожидаясь кэширования или вычисления данных, в отличие от Cache::remember().
Некоторым из вас это может быть сложно понять, я рекомендую прочитать эту статью, которую я написал об этом более подробно и с примерами из реальной жизни: https://laraveleco.com/cache-flexible-method-of-laravel /
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3