2010-09-29 2 views
3

На некоторых моих страницах у меня есть «шаблоны». Например, у меня есть таблица, и у меня есть «шаблон» для каждой строки в таблицеКэш html-файла на клиенте

<div class="wholeRow"><div class="lefCol"><!-- some stuff will go here --></div>... 

Затем я использую JS, чтобы заполнить эту таблицу. Это немного глупо, хотя пользователю приходится загружать этот шаблон каждый раз, когда они посещают страницу - я должен уметь кэшировать его.

Я не уверен, как его кэшировать; единственное, что я могу придумать, - поместить его в статический файл javascript и обернуть его всем document.write, но это похоже, ну, глупо. У кого-нибудь есть другие идеи?

+0

Посмотрите мое решение: http://stackoverflow.com/questions/2326943/when-do-items-in-html5-local-storage-expire/17632458#17632458 –

ответ

1

Если это содержимое, которое не изменяется динамически между загрузками страниц, оно должно генерироваться на сервере, а не Javascript. Если это динамический контент, нет смысла кэшировать его.

Я бы сначала подумал о вашем дизайне приложения, а затем о расширенном кешировании.

Кэширование вещей на клиенте осуществляется главным образом браузером (и в настоящее время они хорошо обрабатываются). Если вы хотите кэшировать результаты вычисленных Javascript, у вас есть две возможности хранения:

  1. Печенье
  2. HTML5 API для хранения данных JS

Ни один из них не подходит для этой цели, как ни один из они были предназначены для кэширования. На данный момент я бы пошел на Cookies, поскольку они широко поддерживаются. После загрузки вашей страницы просто проверьте, существует ли файл cookie, и если да, просто покажите его содержимое. В противном случае сгенерируйте его с помощью JS.

На стороне записки - не использовать <DIV> для табличных данных. Для этого был создан стол < >.

+0

Это кажется мне странным; действительно ли люди действительно помещают данные html в файлы cookie? Это кажется очень плохим. Я, по сути, должен вручную управлять кешем, а не позволять браузеру делать это. Также: шаблон статичен, но то, что попадает в шаблон, не является. Я не помещаю «результаты, рассчитанные javascript» в любом месте, я просто храню некоторый html (который генерируется сервером). – Xodarap

+0

Тогда вам не нужно ничего делать. Браузер будет кэшировать все, что приходит с сервера (как правило). Я подумал, что «Тогда я использую JS для заполнения этой таблицы». означает, что вы используете какое-то JS-вычисление для заполнения таблицы данными и хотите кэшировать таблицу с заполненными данными. –

+0

Я не думаю, что я очень ясен. Вся страница динамична - ее нельзя кэшировать. однако * части * страницы могут быть кэшированы. Как кешировать некоторые части этой страницы? Если части были js или css или изображениями, я мог бы поместить их в отдельные файлы с заголовками управления кешем. Как я могу сделать это с помощью html? – Xodarap

Смежные вопросы