我有许多嵌套的<ui:repeat>
标记,我必须定期更新内部数据。因此,我使用a4j:poll。但是要更新嵌套<ui:repeat>
标签内的数据,我必须在第一个(根)<ui:repeat>
标签之前刷新<div id="div1">
标签。我的问题是,在嵌套的"标签有图像不改变,调用每个动作(<a4j:poll action="#{bean.update} render="div1"/>
)后,这些图片被重新加载。在IE和Firefox中没有问题,图片和div正在缓存,只有数据更改。在Chrome所有div和图像嵌套在<div id="div1">
被重新加载。我可以告诉a4j:poll不重载图像宽度显式id或使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>
我通过设置图像请求的响应头来修复这个问题:
response.setHeader("Cache-Control", "max-age=" + 100000);