Браузер получает результат работы этих php-файлов, а точнее - php-кода в них.
Кешировать результат на стороне клиента (браузера) можно так же, как и статических ресурсов (типа картинок, стилей и т.д.) манипулируя заголовками ETag или Last-Modified используя пришедшие заголовки If-Modified-Since (дата) или If-None-Match (хеш).
Примерная логика с одним только хешем:
1. Добавить поле в таблицу для данной страницы какой-нибудь уникальный хеш.
2. Всегда отправлять заголовок ETag со значением того уникального хеша.
3. При модификации данных обновлять хеш.
4. Проверяем, есть ли со стороны клиета заголовок "If-None-Match" (это тот хеш).
Если пришедший хеш не отличается от текущего, то отправляете заголовок со статусом 304 без тела запроса, иначе со статусом 200 и сами данные.
Примерная логика с датой последней модификации, без записи хеша в базу:
1. п.4 с первого примера.
2. Если нет хеша, то генерируем и отсылаем в заголовках. Так же добавляем заголовок "Last-Modified".
Если же хеш есть, то сверяем значение заголовка "If-Modified-Since" с датой последней модификации данных:
если соответствует, то отвечаем одним статусом 304 и с тем же хешем, который пришёл, иначе целиком и с новым хешем.
Как-то так. (Отредактировано автором: 13 Апреля, 2016 - 03:18:07)
|