如何a4j轮询不刷新Chrome中的图像

时间:2011-12-04 16:49:17

标签: java jsf jsf-2 richfaces

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

<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>

1 个答案:

答案 0 :(得分:1)

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

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