Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   кеширование неизменяемых данных (https://javascript.ru/forum/misc/11685-keshirovanie-neizmenyaemykh-dannykh.html)

micscr 07.09.2010 15:18

кеширование неизменяемых данных
 
Привет.
Есть у меня страничка, которая часто перезагружается (по сабмиту) что то типа многошаговой формы. И один из элементов для выбора - список:
<select class="s3" id="year" name="year">
<option value="xxx">xxx</option>
...
много других option(около 600)
...
</select>

Если используя php в коде html передавать каждый раз - просто реализовать, но по скорости сомневаюсь что оптимально. Как считаете лучше поступить?
Думаю может на php создать файл js с нужными данными, его сеанс пользователя закеширует, а при onload уже евалить и подставлять. Или какие лучше варианты видите?
Спасибо.

subzey 08.09.2010 10:59

Если значения option идут по порядку, то можно их генерировать на клиентской стороне.

Если нет, можно использовать такую конструкцию:
<script src="myselect.php?session_token=1234567"></script>
, где myselect.php возвращает яваскрипт. session_token - случайно генерируемая строка, уникальная для каждой сессии, исключительно для того, чтобы на одном браузере можно было логиниться под разными пользователями, и одному не доставался кешированный скрипт другого.

Сам php должен генерировать (и проверять) E-Tag, характеризующий состояние таблицы БД (или другого источника). Скажем, количество записей и какой-нибудь хеш от их значений. И если E-Tag совпадает, отдавать 304 Not Modified.

micscr 08.09.2010 12:27

Спасибо за ответ.
Смотрю, что под изменяющиеся требования заказчика наверное мне проще будет переделать скрипт в ajax-приложение, чем вешать костыли. Еще думаю над этим.


Часовой пояс GMT +3, время: 16:37.