繁体   English   中英

不要在 JSF 页面中重新加载页面 header

[英]Don't reload page header in JSF page

我正在开发一个 jsf 项目,并且我有几个使用相同模板的 xhtml 页面。 该模板包含布局和页面 header。 我想知道当用户导航到另一个页面时是否可以不重新加载 header,因为它总是一样的; 并且由于它包含几个图像,它使导航不必要地变慢。

一句话:出于安全原因,我正在使用一个过滤器,将以下标头添加到响应中:

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.

可以在不删除这些标题的情况下完成吗?

谢谢! 达米安

该模板包含布局和页面 header。 我想知道当用户导航到另一个页面时是否可以不重新加载 header,因为它总是一样的;

这仅在使用 HTML 框架(不推荐)或通过 Ajax 请求而不是正常请求刷新页面部分时才有可能。 但是,缺点是您最终会得到不可标记的 URL。

并且由于它包含几个图像,它使导航不必要地变慢。

如果这是真正的问题,那么您需要指示浏览器实际缓存图像(以及 CSS 和 JS)。 因此,如果您也在图像/CSS/JS 请求上设置这些响应标头,那么浏览器每次都被迫重新加载它们。 这是不必要的,并且确实会导致加载缓慢。 You need to ensure that those headers are only set on JSF pages, so you need to ensure that the URL pattern of the filter matches JSF page requests only, eg *.jsf or *.xhtml and thus not /* or something.

也可以看看:

在我的音频播放器中寻找类似的技术,以便在导航期间不要停止监听。 我只看soundcloud网站。 您可以刷新 ajax 中的内容并在 javascript 中更改 url 与 Z05B8C74CBD96FBF2DE4C1A352702 在这里查看:FBF4C1A352702。

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

它可能不适用于旧浏览器...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM