Mise en cache et invalidation de l'agencement de Commerce Composer
productId = 10001, pageGroup = ProductcategoryId = 10002, pageGroup = Category
L'agencement qui en résulte peut être mis en cache automatiquement si com.ibm.commerce.pagelayout.cache.PageDesignMetaDataGenerator détermine que l'agencement efficace est le même pour tous les clients. L'activité d'agencement est évaluée par le cadre d'activité marketing, et si elle est déterminée comme étant statique, l'agencement peut être mis en cache.
Selon que l'agencement individuel est mis en cache, PageDesignMetaDataGenerator modifie l'entrée du JSP d'affichage de la page dans le fichier de configuration cachespec.xml.
Si la page ne doit pas être mise en cache, la propriété do-not-cache est définie sur true.
| ID de dépendance | Description |
|---|---|
|
Chaque emplacement e-marketing d'agencement est évalué par le cadre d'activité marketing pour déterminer l'agencement, et est ajouté comme une dépendance. Si un autre agencement est associé à cet objectId et à ce pageGroup, cet ID de dépendance déclenche une invalidation du cache. |
|
Un ID de dépendance unique est généré à partir d'une balise dans le JSP d'agencement. Chaque agencement doit inclure cette balise dans son JSP au format suivant :Si l'agencement associé est lui-même modifié par l'utilisateur professionnel, cet ID de dépendance déclenche une invalidation du cache. |
Si l'agencement n'est pas mis en cache, son contenu peut toujours être mis en cache indépendamment sous forme de fragments. Pour plus de détails, voir Mise en cache et invalidation des widgets.
<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>
...Où pageId est la valeur d'ID de page pour la page d'accueil.
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)