2016-04-08 3 views
-2

Скажем, у меня есть веб-приложение java/spring/jsf/jsp. Пользователь заполняет все обязательные поля, выбирает все параметры, клики генерирует отчет, весенние бобы выполняют свою работу, запрашивается база данных для информации, а пользователь направляется на страницу «отчет», сгенерированную в соответствии с введенной информацией. Я ищу способ сохранить эту страницу для доступа позже по ссылке - вид текущей ссылки на страницу. Одним из примеров этого может быть jsfiddle.net, где вы можете вводить информацию, сохранять ее и получать доступную ссылку.

То, о чем я думал, имея свои текущие знания, сохраняет какой-то хэш-расширение url вместе с отображаемыми в настоящее время свойствами страницы в базе данных и базе данных запросов для этой информации, когда кто-то обращается к веб-сайту www.websiteUrl.com/extensionHash, но каждый раз делает запрос кто-то получает доступ к расширению, похоже, тяжело работает.
Другим способом может быть сохранение всей страницы html или только части содержимого на сервере и последующего обслуживания по запросу.

Каков самый простой/продуктивный способ сделать это?Сохранить текущую страницу просмотра для обмена

+0

Вы, кажется, не измерили это «тяжелое» предположение? Сделайте это и соответствующим образом переработайте вопрос. Измерение - это знание. Обычно ответ - «кеш». Вы поставили теги на вопрос, который ничего не говорит о используемом слое БД и/или персистентности, но, например, JPA поддерживает кеш второго уровня. – BalusC

+0

Это более «способ сделать это», чем вопрос «один из способов сделать это». Я знаю, что могу добиться того, чего хочу, как я описал, но есть ли более продуктивный способ? Чтение статей «транзакции базы данных против Java-кода» дало мне представление о том, что базы данных всегда медленнее и менее продуктивны. – eight

+1

Именно поэтому люди изобретали кеши. Кажется, вы сильно сосредоточены на слое пользовательского интерфейса, в то время как проблема действительно находится в уровне сохранения. Если вы переместите фокус на правильную цель (основная причина всех проблем), вы, скорее всего, найдете уже предоставленные решения/ответы. Производительность базы данных не имеет абсолютно никакого отношения ** к «сохранить текущую страницу для совместного использования». Это относится и к любому другому воображаемому варианту использования, в котором задействованы SQL-запросы. – BalusC

ответ

0

Это один вариант вместо ссылки:

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

в java, вы можете добиться этого, реализовав класс listner.

Downvoters: просьба указать причину.

+0

Это избавит меня от беспокойства о попадании базы данных каждый раз, хороший ответ. Не поймите вниз. – eight

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