我在xhtml页面中使用p:graphicImage
标记以大而小的方式显示同一图像:
<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请求。有办法避免这种情况吗?
问候
您可以使用stream
属性并将其设置为false
。这将在base64中呈现图像,而不是呈现图像的URL。我不建议这样做,因为标记会很大,而且性能可能会差很多。
我从客户端的第一个cache="false"
中删除p:graphicImage
(默认为true
),图像是在客户端的第一个<img ... />
(p:graphicImage
呈现给它)中检索的,并且仅从客户端缓存第二个而无需检索两次。