Не перезагружать заголовок страницы на странице JSF - PullRequest
1 голос
/ 05 мая 2011

Я работаю над проектом jsf, и у меня есть несколько страниц xhtml, использующих один и тот же шаблон. Шаблон содержит макет и заголовок страницы. Я хотел бы знать, возможно ли не перезагружать заголовок, когда пользователь переходит на другую страницу, поскольку он всегда один и тот же; и поскольку он содержит пару изображений, он делает навигацию излишне медленной.

Одно замечание: я использую фильтр, который добавляет следующие заголовки к ответу по соображениям безопасности:

HttpServletResponse resp = (HttpServletResponse) response;
resp.setHeader("Cache-Control", "no-cache,no-store,must-revalidate"); // HTTP 1.1
resp.setHeader("Pragma", "no-cache"); // HTTP 1.0
resp.setDateHeader("Expires", 0); // Proxies.

Можно ли это сделать, не удаляя эти заголовки?

Спасибо! Damian

Ответы [ 2 ]

1 голос
/ 05 мая 2011

Шаблон содержит макет и заголовок страницы. Я хотел бы знать, возможно ли не перезагружать заголовок, когда пользователь переходит на другую страницу, поскольку он всегда один и тот же;

Это возможно только при использовании фрейма HTML (не рекомендуется) или при обновлении частей страницы с помощью запросов Ajax вместо обычных запросов. Тем не менее, недостатком является то, что вы в конечном итоге с незарегистрированных URL-адресов.

и, поскольку он содержит пару изображений, навигация становится излишне медленной.

Если это реальная проблема, то вы должны указать браузеру на самом деле кэшировать изображения (а также CSS и JS). Так что, если вы устанавливаете эти заголовки ответов также на изображения / CSS / JS-запросы, браузер вынужден каждый раз перезагружать их. Это не нужно и действительно приведет к медленной загрузке. Необходимо убедиться, что эти заголовки установлены только на страницах JSF, поэтому необходимо убедиться, что шаблон URL фильтра соответствует только запросам страницы JSF, например, *.jsf или *.xhtml и, следовательно, не /* или что-то еще.

Смотри также:

0 голосов
/ 30 марта 2013

Ищу похожую технику в моем аудиоплеере, чтобы не останавливать прослушивание во время навигации. Я просто смотрю на сайт Soundcloud. Вы можете обновить содержимое в ajax и изменить URL в javascript с помощью window.history.pushState смотрите здесь:

http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#dom-history-pushstate

Вероятно, он не работает со старым браузером ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...