Almacenamiento en memoria caché e invalidación de diseño de Commerce Composer
productId = 10001, pageGroup = Product
categoryId = 10002, pageGroup = Category
El diseño resultante se puede almacenar en memoria caché automáticamente si com.ibm.commerce.pagelayout.cache.PageDesignMetaDataGenerator determina que el diseño ganador es el mismo para todos los clientes. La infraestructura de actividad de marketing evalúa la actividad de diseño y, si se determina que es estática, el diseño se puede almacenar en memoria caché.
En función de si el diseño individual se almacena en memoria caché, PageDesignMetaDataGenerator modifica la entrada de JSP de visualización de página en el archivo de configuración de cachespec.xml.
Si la página no se va a almacenar en la memoria caché, la propiedad do-not-cache se establece en true.
ID de dependencia | Descripción: |
---|---|
|
La infraestructura de actividades de marketing evalúa cada zona e-marketing de diseño para determinar el diseño y se añade como dependencia. Si se asocia un diseño diferente con este objectId and pageGroup, este ID de dependencia acciona una invalidación de memoria caché. |
|
Se genera un ID de dependencia único de una etiqueta dentro del JSP de diseño. Cada diseño debe incluir esta etiqueta en su JSP en el formato siguiente:
Si el usuario comercial modifica el diseño asociado, este ID de dependencia desencadena una invalidación de caché. |
Si el diseño no se almacena en memoria caché, su contenido todavía se puede almacenar en memoria caché de forma independiente como fragmentos. Consulte Almacenamiento en memoria caché e invalidación de widget para obtener más detalles.
<cache-entry>
<class>servlet</class>
<name>com.ibm.commerce.store.servlet.StoreDispatcherServlet.class</name>
<!-- Displays catentry details using either ProductDisplay.jsp or BundleDisplay.jsp or PackageDisplay.jsp
The purpose of ProductDisplay command is to retrieve the configured display Page for the specified Product/Bundle/Package/Item in in the specified catalog.
That display page will in turn be launched to display the catentry information. It looks at DISPENTREL table to get the JSP pages to display the product. -->
<cache-id>
<component id="" type="pathinfo">
<required>true</required>
<value>/ProductDisplay</value>
</component>
<component id="storeId" type="parameter">
<required>true</required>
</component>
……
……
<component id="productId" type="parameter">
<required>true</required>
</component>
<component id="categoryId" type="parameter">
<required>false</required>
</component>
<metadatagenerator>com.ibm.commerce.pagelayout.cache.PageDesignMetaDataGenerator</metadatagenerator>
</cache-id>
<seourl:seoUrlPatternDef name="HomePageURLWithLang">
<seourl:seoUrlPattern viewName="TopCategoriesDisplay">/LanguageToken/StoreToken:CatalogToken</seourl:seoUrlPattern>
<seourl:urlToParamMapping>
<seourl:mapping name="langId" value="?LanguageToken?"/>
<seourl:mapping name="storeId" value="?StoreToken?"/>
<seourl:mapping name="catalogId" value="?CatalogToken?"/>
<seourl:mapping name="pageName" value="HomePage"/>
<seourl:mapping name="pageGroup" value="Content"/>
<seourl:mapping name="pageId" value="pageId"/>
</seourl:urlToParamMapping>
...
<seourl:seoUrlPatternDef name="HomePageURLWithLang">
<seourl:seoUrlPattern viewName="TopCategoriesDisplay">/LanguageToken/StoreToken:CatalogToken</seourl:seoUrlPattern>
<seourl:urlToParamMapping>
<seourl:mapping name="langId" value="?LanguageToken?"/>
<seourl:mapping name="storeId" value="?StoreToken?"/>
<seourl:mapping name="catalogId" value="?CatalogToken?"/>
<seourl:mapping name="pageName" value="HomePage"/>
<seourl:mapping name="pageGroup" value="Content"/>
<seourl:mapping name="pageId" value="pageId"/>
</seourl:urlToParamMapping>
...
Donde pageId es el valor de ID de página para la Página de inicio.
SELECT PLPAGE_ID, STOREENT_ID FROM PLPAGE
WHERE ADMINNAME = 'HomePage' AND STOREENT_ID IN
(SELECT RELATEDSTORE_ID FROM STOREREL WHERE STORE_ID = store_Id AND STRELTYP_ID = -11)