28
January

Нежелательное кэширование

Posted in: Java Web Design, J2EE, Java technologies, J2SE |

Кэширование страниц браузерами (FireFox, Opera) действительно полезная вещь. Правда, иногда это только мешает.
При разработке серьезных веб-приложений (в частности с помощью Java) важна актуальность информации на страницах сайта. В этом случае нужно застраховаться от того, что кто-то из пользователей во всю пользуется возможностью браузера кэшировать страницы.
Есть простой способ решить эту проблему.

Для этого необходимо в HTTP-запросе передать какой-нибудь уникальный идентификатор. Это гарантирует, что браузер воспримет открываемую страницу как новую и не будеть искать ее в кэше.
Уникальным идентификатором может послужить время загрузки страницы. Получить текущее время в Java можно так:

long id = System.currentTimeMillis();

или

long id = (new Date()).getTime().

В обоих случаях мы получим значение типа long. Теперь с некоторым url типа String можно сделать следующее:

url +=“?id=” + id;

или

url +=“&id=” + id;

в зависимости от ситуации.
Те, кто знакомы со Struts, могут использовать вышеописанное при создании ActionForward на лету, например:

long id = System.currentTimeMillis();
ActionForward fwd =
  new ActionForward(url + “?id” + id, false);

Вот и все.

3 Comments »

RSS feed for comments on this post. TrackBack URI



wert2all
January 29, 2006 #

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

ну твой вариант - красивый, а что же делать с посковиками, которые будут загребать всё по несколько раз и думать, что это разные страницы?…

January 30, 2006 #

Думаю, поисковикам трудновато будет отгадать твой пароль и зайти в security zone. А если это информация, которая аутентификации не требует, то необходимости держать ее каждую секунду up-to-date не вижу.
Кстати, слышал такую вещь, что некоторые поисковики не воспринимают амперсант и все что после него, это правда?

wert2all
February 2, 2006 #

>> Кстати, слышал такую вещь, что некоторые поисковики не воспринимают амперсант и все что после него, это правда?

да кажется было такое… но если посмотреть на результаты поиска на этих же поисковиках, то думаю это уже не проблема….

Leave a comment

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>