Verschachtelung und Einbettung anfordern request-nesting-and-embedding
Die Bildbereitstellung unterstützt die unbegrenzte Verschachtelung von Bildbereitstellungsanfragen, das Einbetten von Bildbereitstellungsanfragen sowie das Einbetten von Bildern, die von fremden Servern abgerufen wurden. Nur Ebenenbilder und Ebenenmasken unterstützen diese Mechanismen.
Verschachtelte Bildbereitstellungsanfragen section-6954202119e0466f8ff27c79f4f039c8
Eine gesamte Image-Serving-Anfrage kann als Ebenenquelle verwendet werden, indem sie im src=
-Befehl (oder mask=
-Befehl) mit der folgenden Syntax angegeben wird:
…&src=is( nestedRequest)&…
Beim is
-Token wird zwischen Groß- und Kleinschreibung unterschieden.
Die verschachtelte Anfrage darf nicht den Stammverzeichnis des Servers enthalten (normalerweise http:// *server*/is/image/'
).
'(',')'
) und die Befehlstrennzeichen ('?'
, '&'
, '='
) in verschachtelten Anfragen dürfen nicht HTTP-kodiert sein. In der Tat müssen verschachtelte Anfragen genauso codiert werden wie die äußere (verschachtelte) Anfrage.Vorverarbeitungsregeln werden auf verschachtelte Anfragen angewendet.
Die folgenden Befehle werden ignoriert, wenn sie in verschachtelten Anfragen angegeben werden (entweder in der Anfrage-URL oder in catalog::Modifier
oder catalog::PostModifier
):
fmt=
qlt=
iccEmbed=
printRes=
quantize=
req=
bgc=
Wenn das Ergebnisbild der verschachtelten Anfragen Maskendaten (Alpha) enthält, werden diese als Ebenenmaske an die Einbettungsebene übergeben.
Ignoriert werden auch attribute::MaxPix
und attribute::DefaultPix
des Bildkatalogs, der für die verschachtelte Anfrage gilt.
Das Bildergebnis einer verschachtelten IS-Anfrage kann optional zwischengespeichert werden, indem cache=on
eingeschlossen wird. Standardmäßig ist das Zwischenspeichern von Zwischendaten deaktiviert. Die Zwischenspeicherung sollte nur aktiviert werden, wenn erwartet wird, dass das Zwischenbild in einer anderen Anfrage innerhalb eines angemessenen Zeitraums wiederverwendet wird. Es gilt die standardmäßige Server-seitige Cache-Verwaltung. Daten werden in einem verlustfreien Format zwischengespeichert.
Render-Anfragen für eingebettete Bilder section-69c5548db930412b9b90d9b2951a6969
Wenn das Dynamic Media-Bild-Rendering auf dem Server aktiviert ist, können Render-Anfragen als Ebenenquellen verwendet werden, indem sie im Befehl src= (oder mask=) angegeben werden. Verwenden Sie die folgende Syntax:
…&src=ir( *renderRequest*)&…
Beim ir
-Token wird zwischen Groß- und Kleinschreibung unterschieden.
renderRequest ist die übliche Bildwiedergabeanfrage, mit Ausnahme des HTTP-Stammpfads http:// *server*/ir/render/
.
'(',')'
) und die Befehlstrennzeichen ('?'
, '&'
, '='
) in verschachtelten Anfragen dürfen nicht HTTP-kodiert sein. Effektiv müssen eingebettete Anfragen genauso codiert werden wie die äußere (einbettende) Anfrage.Die folgenden Image-Rendering-Befehle werden ignoriert, wenn sie in verschachtelten Anfragen angegeben werden:
fmt=
qlt=
icc=
iccEmbed=
printRes=
req=
Ignoriert werden auch die attribute::MaxPix
und attribute::DefaultPix
des Materialkatalogs, der für die verschachtelte Render-Anfrage gilt.
Das Bildergebnis einer verschachtelten IR-Anfrage kann optional zwischengespeichert werden, indem cache=on
eingeschlossen wird. Standardmäßig ist das Zwischenspeichern von Zwischendaten deaktiviert. Die Zwischenspeicherung sollte nur aktiviert werden, wenn erwartet wird, dass das Zwischenbild in einer anderen Anfrage innerhalb eines angemessenen Zeitraums wiederverwendet wird. Es gilt die standardmäßige Server-seitige Cache-Verwaltung. Daten werden in einem verlustfreien Format zwischengespeichert.
Eingebettete FXG-Render-Anfragen section-c817e4b4f7da414ea5a51252ca7e120a
Wenn der FXG Graphics Renderer (auch als AGMServer bezeichnet) installiert und mit Image Serving aktiviert ist, können FXG-Anfragen als Ebenenquellen verwendet werden, indem sie in src=
(oder mask=
) Befehlen angegeben werden. Verwenden Sie die folgende Syntax:
…&src=fxg( renderRequest)&…
Beim fxg
-Token wird zwischen Groß- und Kleinschreibung unterschieden.
renderRequest ist die übliche FXG-Render-Anfrage, mit Ausnahme des HTTP-Stammpfads http:// *server*/agm/render/
.
'(',')'
) und die Befehlstrennzeichen ( '?'
, '&'
, '='
) in verschachtelten Anfragen dürfen nicht HTTP-kodiert sein. Effektiv müssen eingebettete Anfragen genauso codiert werden wie die äußere (einbettende) Anfrage.Die folgenden FXG-Befehle werden ignoriert, wenn sie in verschachtelten Anfragen angegeben werden:
fmt=
qlt=
icc=
iccEmbed=
cache=
Fremdbildquellen section-84e83ecfcd1a43748cdfc7a6f8c04cb8
Image Serving unterstützt den Zugriff auf Quellbilder auf fremden HTTP-Servern.
Um eine Fremd-URL für einen src=
oder einen mask=
-Befehl anzugeben, trennen Sie die Fremd-URL oder das URL-Fragment mit Klammern ab:
…&src=( foreignUrl)&…
Wichtig Die Trennzeichen ( '(',')'
) und Befehlstrennzeichen ( '?'
, '&'
, '='
) in verschachtelten Anfragen dürfen nicht HTTP-kodiert sein. Effektiv müssen eingebettete Anfragen genauso codiert werden wie die äußere (einbettende) Anfrage.
Vollständige absolute URLs (sofern attribute::AllowDirectUrls
festgelegt ist) und URLs relativ zu attribute::RootUrl
sind zulässig. Ein Fehler tritt auf, wenn eine absolute URL eingebettet ist und das Attribut: AllowDirectUrls
gleich 0 ist oder wenn eine relative URL angegeben und attribute::RootUrl
leer ist.
Während fremde URLs nicht direkt in der Pfadkomponente der Anfrage-URL angegeben werden können, ist es möglich, eine Vorverarbeitungsregel einzurichten, um die Konvertierung relativer Pfade in absolute URLs zu ermöglichen (siehe folgendes Beispiel).
Fremdbilder werden vom Server entsprechend den in der HTTP-Antwort enthaltenen Caching-Kopfzeilen zwischengespeichert. Wenn weder ein ETag
noch ein HTTP-Antwort-Header für die letzte Änderung vorhanden ist, wird die Antwort nicht zwischengespeichert. Dies kann bei wiederholten Zugriffen auf dasselbe Fremdbild zu Leistungseinbußen führen, da die Bildbereitstellung das Bild bei jedem Zugriff erneut abrufen und überprüfen muss.
Dieser Mechanismus unterstützt dieselben Bilddateiformate, die vom Dienstprogramm „Image Convert“ (IC) unterstützt werden, mit Ausnahme von Quellbildern mit 16 Bit pro Komponente.
Einschränkungen section-fb68e3f0d40947feb94d7bf183b64929
Die Größe des Bildes, das durch verschachtelte/eingebettete Anfragen generiert wird, wird normalerweise automatisch optimiert. Wenn das Caching verschachtelter Anfragebilder aktiviert ist, können Sie die Leistung inkrementell steigern, indem Sie die genaue Größe des verschachtelten Bildes angeben, sodass keine weitere Skalierung erforderlich ist, wenn der Cache-Eintrag wiederverwendet wird.
Wichtige Bildbereitstellung unterstützt keine Doppelkodierung von verschachtelten oder eingebetteten Anforderungen. Verschachtelte und eingebettete Anfragen müssen genauso wie einfache Anfragen HTTP-kodiert sein.
Beispiele section-d800cfc31abe46d2a964f8e7929231f1
Schichtvorlage mit Zwischenspeicherung:
Verwenden Sie Verschachtelung, um einer Ebenenvorlage eine Zwischenspeicherung hinzuzufügen. Eine begrenzte Anzahl von Hintergrundbildern wird mit stark variablem Text überlagert. Die anfängliche Vorlagenzeichenfolge könnte wie folgt aussehen:
layer=0&src=$img$&size=300,300&layer=1&text=$txt$
Mit geringfügigen Änderungen können wir das Bild der Ebene 0 vorab skalieren und dauerhaft zwischenspeichern, wodurch die Server-Last reduziert wird:
layer=0&src=is(?src=$img$&size=300,300&cache=on)&layer=1&text=$txt$
Einbetten von Anfragen für das Dynamic Media-Bild-Rendering
Erstellen Sie mithilfe einer in myCatalog/myTemplate gespeicherten Vorlage das Bild für Layer2 der Vorlage mithilfe von Dynamic Media Image Rendering:
http://server/is/image/myCatalog/myTemplate?layer=2&src=ir(myRenderCatalog/myRenderObject?id=myIdValue&sel=group&src=is(myCatalog/myTexture1?res=30)&res=30)&wid=300
Beachten Sie die verschachtelten geschweiften Klammern. Die Anfrage zum Rendern von Bildern bettet einen Rückruf an Image Serving ein, um eine wiederholbare Textur abzurufen.
Verwandte Themen section-109a0a9a3b144158958351139c8b8e69
src= , mask=, Request PreProcessing, Image Rendering Reference, templates, Image Serving Utilities