2013-07-09 1 views
0

У меня есть JSP-файл, в котором я хочу, чтобы некоторые строки кода не кэшировались. Это возможно? В настоящее время я использую:Как предотвратить кеширование некоторой части кода в jsp?

<% 
    response.setHeader("Cache-Control","no-store"); //HTTP 1.1 
    response.setHeader("Pragma","no-cache"); //HTTP 1.0 
    response.setDateHeader ("Expires", 0); //prevents caching at the proxy server 
%> 

Это будет работать для полного JSP, но мне нужно, чтобы это затрагивает лишь некоторые строки в этом файле. Можем ли мы добавить чек на это? Может ли кто-нибудь помочь мне в этом?

+0

Обратите внимание, что это не кешированный код JSP: что вы делаете, это настройка HTTP-заголовка, который сообщает браузеру клиента, как кэшировать ответ HTTP. Вот почему вам нужно разделить этот ответ на несколько частей, если вы хотите их кэшировать отдельно. –

+0

Спасибо за ваш ответ. Да, это заголовок ответа, в котором мы можем установить кеш как false/no. Моя проблема была такой: На домашней странице есть один компонент, в котором выполняется JSP. Теперь я имею в виду, что если я нахожусь на любой другой странице, я поставлю cookie как посещенный в браузере, а один вернусь на домашнюю страницу, я прочитаю cookie и покажут ПОСЕТИТЬ. В моем случае cookie устанавливается, но когда я читаю JSP, он все еще показывает UNVISITED. – OmP

ответ

3

Невозможно достичь частичного поведения кеширования с помощью простых jsp. Но есть две альтернативы:

Попробуйте, если, например, рамка «Sling Dynamic Include» подходит для ваших нужд. https://github.com/Cognifide/Sling-Dynamic-Include В этом подходе динамические сгенерированные компоненты заменяются на стороне сервера или стороны края. Входы ssi или esi динамически обрабатываются по каждому запросу.

Другой подход заключается в использовании запроса ajax для динамического извлечения части, которая должна быть динамически отображена. Чтобы предотвратить кэширование динамически загружаемого ресурса, просто установите заголовок no-cahce в сценарии рендеринга ресурсов.

+0

Большое спасибо за ответ и ссылку GIT. Мы используем drag-drop для этого компонента, поэтому не можем включить sling. Но да, другой подход кажется решением. Опять же, спасибо за тонну за вашу помощь. – OmP

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