Кэш в браузере

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
pochchta
Сообщения: 17
Зарегистрирован: 2020.07.15, 09:28

Кэш в браузере

Сообщение pochchta »

Здравствуйте.
Для фильтрации в gridview есть зависимые дропбоксы: выбрал пункт в первом -> изменился список во втором.
Список для второго дропбокса грузится через ajax json.
Адрес вида: /list?dropbox1=1
Как лучше закэшировать в браузере эти списки для второго дропбокса? Мне кажется что лучше не проверять изменения списков на сервере, а обновлять по истечению срока годности, например, час. Списки довольно маленькие ~ 20 пунктов.
И самое главное КАК это сделать, вот так не работает, грузится каждый раз заново:

Код: Выделить всё

        $headers = Yii::$app->response->headers;
        $date = gmdate('D, d M Y H:i:s \G\M\T', time() + (60 * 60 * 24));
        $headers->set('Expires', $date);
        
        Response header:
		Cache-Control: no-store, no-cache, must-revalidate
		Connection: Keep-Alive
		Content-Length: 195
		Content-Type: text/html; charset=UTF-8
		Date: Fri, 03 Sep 2021 08:33:53 GMT
		Expires: Thu, 19 Nov 1981 08:52:00 GMT
		Keep-Alive: timeout=10, max=100
		Pragma: no-cache
		Server: Apache
Если задействовать 'yii\filters\HttpCache', то не получается обойтись без запроса об изменениях на сервере.
Ответить