Отображение одного и того же изображения несколько раз с несколькими p: graphicImage без нескольких HTTP-запросов - PullRequest
1 голос
/ 07 января 2020

Я использую тег p:graphicImage на своей странице X HTML, чтобы отображать одно и то же изображение маленьким и большим:

<f:facet name="header">#{msgs.ATTR_PICTURE}</f:facet>
<h:panelGroup>
    <p:graphicImage id="product_thumbnail" styleClass="thumbnail"
            cache="false" value="#{imageBean.streamedImageById}">
        <f:param name="productId" value="#{_product.id}" />
    </p:graphicImage>
    <p:tooltip id="imagebigger" for="product_thumbnail" position="right" showDelay="0" showEffect="blind" styleClass="tooltip_thumbnail">
        <p:graphicImage value="#{imageBean.streamedImageById}" styleClass="thumbnail_large" cache="false">
            <f:param name="productId" value="#{_product.id}" />
        </p:graphicImage>
    </p:tooltip>
</h:panelGroup>

I хотел бы избежать 2 HTML запросов систематически для каждого изображения для отображения. Есть ли способ избежать этого?

Ответы [ 2 ]

1 голос
/ 07 января 2020

Если вы удаляете cache="false" из первого p:graphicImage (по умолчанию true) изображение извлекается в первом <img ... /> (который p:graphicImage отображает) на клиенте и только что отображается из клиентский кеш для второго без получения его дважды.

Возможно, cache="false" был там по причине, как вы упомянули в комментариях, но это фактически новый вопрос, для которого есть несколько Q / А в Stackoverflow, но какой из них является наиболее подходящим, зависит от деталей вашего варианта использования. Ваш новый вопрос может быть либо дубликатом, либо новым действительным вопросом сам по себе ... Возможно, это будет возвращение cache="true на первом p:graphicImage и замена второго на что-то другое (даже на некоторый чистый клиент- сторона «дублирование», например) может быть хорошим подходом.

0 голосов
/ 07 января 2020

Вы можете использовать атрибут stream и установить его на false.
Это будет отображать изображение в base64, а не отображать URL-адрес изображения.
Я не предлагаю его в качестве разметки будет очень большой и, вероятно, намного хуже производительности.

...