кеширование неизменяемых данных
Привет.
Есть у меня страничка, которая часто перезагружается (по сабмиту) что то типа многошаговой формы. И один из элементов для выбора - список: <select class="s3" id="year" name="year"> <option value="xxx">xxx</option> ... много других option(около 600) ... </select> Если используя php в коде html передавать каждый раз - просто реализовать, но по скорости сомневаюсь что оптимально. Как считаете лучше поступить? Думаю может на php создать файл js с нужными данными, его сеанс пользователя закеширует, а при onload уже евалить и подставлять. Или какие лучше варианты видите? Спасибо. |
Если значения option идут по порядку, то можно их генерировать на клиентской стороне.
Если нет, можно использовать такую конструкцию: <script src="myselect.php?session_token=1234567"></script>, где myselect.php возвращает яваскрипт. session_token - случайно генерируемая строка, уникальная для каждой сессии, исключительно для того, чтобы на одном браузере можно было логиниться под разными пользователями, и одному не доставался кешированный скрипт другого. Сам php должен генерировать (и проверять) E-Tag, характеризующий состояние таблицы БД (или другого источника). Скажем, количество записей и какой-нибудь хеш от их значений. И если E-Tag совпадает, отдавать 304 Not Modified. |
Спасибо за ответ.
Смотрю, что под изменяющиеся требования заказчика наверное мне проще будет переделать скрипт в ajax-приложение, чем вешать костыли. Еще думаю над этим. |
Часовой пояс GMT +3, время: 16:37. |