1

p:graphicImage在我的 XHTML 页面中使用标签来以小尺寸显示相同的图像:

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

我想系统地避免显示每个图像的 2 个 HTML 请求。有没有办法避免这种情况?

4

2 回答 2

0

cache="false"从第一个p:graphicImage(默认为)中删除图像在客户端上的第一个(渲染到的)true中检索图像,并从客户端缓存中显示第二个图像,而不检索它两次。<img ... />p:graphicImage

可能因为您在评论中提到的原因而cache="false"存在,但这实际上是一个新问题,在 Stackoverflow 中有几个 Q/A,但哪个最合适取决于您的用例的详细信息。您的新问题可能再次重复或新的有效问题本身......甚至可能是返回cache="true第一个p:graphicImage并用其他东西替换第二个(甚至是一些纯粹的客户端“重复”,例如)可能是一个好方法。

于 2020-01-07T17:39:07.427 回答
0

您可以使用该stream属性并将其设置为false.
这将在 base64 中呈现图像,而不是呈现图像的 URL。
我不建议这样做,因为标记会很大并且性能可能会更差。

于 2020-01-07T14:37:42.173 回答