【问题标题】:How a4j poll not to refresh images in Chromea4j 如何轮询不刷新 Chrome 中的图像
【发布时间】:2012-01-12 16:39:59
【问题描述】:

我有很多嵌套的<ui:repeat>tags,我必须定期更新里面的数据。因此我使用 a4j:poll。但要更新嵌套<ui:repeat> 标签内的数据,我必须在第一个(根)<ui:repeat> 标签之前刷新<div id="div1"> 标签。我的问题是在嵌套的 '' 标签中有图像不会改变,并且在调用每个操作 (<a4j:poll action="#{bean.update} render="div1"/>) 后,这些图片会重新加载。在 IE 和 Firefox 中没有问题,图片和 div 正在缓存,只有数据发生变化。在 Chrome 中,所有嵌套在 <div id="div1"> 中的 div 和图像都会重新加载。我可以告诉 a4j:poll 不要重新加载图像宽度显式 id 或让 Chrome 用 Ja​​vaScript 或其他东西缓存它们吗?例如:

<h:body>
    <h:panelGroup layout="block" id="div1">  
        <ui:repeat value="#{bean.someListData}" var="data">
            <ui:repeat value="..." var="...">
                ... 
                <img id="mustNotBeReloaded"/>
                <h:outputText id="mustBeReloaded"/>
                ...               
            </ui:repeat>
        </ui:repeat>
    </h:panelGroup>
    <h:form>
        <a4j:poll action="#{bean.update}" render="div1"/>
    </h:form>
</h:body>

【问题讨论】:

  • 图像请求中有哪些响应标头?
  • 这是图像请求的响应标头:Content-Length:102992 Content-Type:image/jpeg Date:Mon, 05 Dec 2011 10:12:39 GMT

标签: java jsf jsf-2 richfaces


【解决方案1】:

我通过在图像请求上设置响应标头来解决此问题:

response.setHeader("Cache-Control", "max-age=" + 100000);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-17
    • 1970-01-01
    • 2015-08-01
    • 2015-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多