Jsp кеш проблема - PullRequest
       14

Jsp кеш проблема

0 голосов
/ 27 декабря 2010

Я использую javascript и css для создания многоуровневого выпадающего меню со следующими разметками:

<ul>
   <li>menu item 1</li>
       <ul>
         <li><a href="#">sub menu menu item 1</a></li>
         ................. 

Эта разметка генерируется пользовательским тегом JSP <mui:menu .../>, который загружает данные меню из базы данных.

Я надеюсь, что моя страница JSP может вести себя так:

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

Как я могу это сделать?Я не знаю подробностей о механизме кэша.

Ответы [ 2 ]

2 голосов
/ 27 декабря 2010

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

Но ИМХО, я думаю, вы не правильно подходите к этому.Ваше меню создается с помощью пользовательского тега JSP. JSP работает на сервере , поэтому каждый раз, когда вы запрашиваете ресурс, содержащий тег <mui:menu .../>, этот тег извлекает данные из вашей базы данных.

Полагаю, у вас мог бы быть этот тег в отдельном ресурсе, который вы можете запросить с неизменяемым GET (чтобы браузер мог кэшировать результат) от клиента, и я думаю, вы могли бы ответить HTTP304 Не изменено , чтобы сигнализировать, что кэшированное значение все еще допустимо, но факт, в вашем конкретном случае, лучше обрабатывать кэш на стороне сервера, а не на стороне клиента .

Пусть тег JSP обрабатывает кэш и отправляется в базу данных только в том случае, если что-то изменилось.

Только мои два цента!

1 голос
/ 28 декабря 2010

Посмотрите на OSCache - у него есть JSP-теги, которые могут помочь вам кэшировать сгенерированное меню, и вы можете легко управлять блоками контента с ним.

OSCache можно найти на http://www.opensymphony.com/oscache/

...