Как a4j опросить, чтобы не обновлять изображения в Chrome - PullRequest
2 голосов
/ 04 декабря 2011

У меня много вложенных тегов <ui:repeat>, и я должен регулярно обновлять данные внутри них. Поэтому я использую a4j: poll. Но чтобы обновить данные внутри вложенных тегов <ui:repeat>, я должен обновить тег <div id="div1"> перед первым (корневым) тегом <ui:repeat>. Моя проблема в том, что во вложенных тегах '' есть изображения, которые не меняются, и после вызова каждого действия (<a4j:poll action="#{bean.update} render="div1"/>) эти картинки перезагружаются. В IE и Firefox проблем нет, изображения и div кэшируются, и изменяются только данные. В Chrome все div и изображения, вложенные в <div id="div1">, перезагружаются. Могу ли я сказать a4j: poll не перезагружать явные идентификаторы ширины изображений или заставить 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 Ответ

1 голос
/ 05 декабря 2011

Я исправляю это, устанавливая заголовок ответа на запрос изображения:

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