Caching using environment variables with the 'keydependencies' parameter
In this example, we cache query results as datatables depending on a querystring variable. For each value of the querystring parameter 'ct', a new cache value is added.
Try this code with different contenttype numbers and see the resulting cache key differ.
| Smartsite SXML |
|
|---|---|
<se:cache save="cached=this.iscached(), key=this.getcachekey()"
keydependencies="ct={request.query(ct, default=4)}"
resulttype="none"
trim="both" >
<se:sqlquery sql="select nr, title from {channel.view()} where contenttype=?:ct"
resulttype="datatable">
<se:parameters>
<se:parameter name="params">
<se:collection>
<se:member name="ct" type="integer">{request.query(ct, default=4)}</se:member>
</se:collection>
</se:parameter>
</se:parameters>
</se:sqlquery>
</se:cache>
Cached: {buffer.get(cached)} under key {buffer.get(key)}
{cache.get($key)}
|
|
| Example Result |
|
|---|---|
Cached: true under key 2EF0CDFECD1983946B6A6815D4970F3A SXMLDataTable (Name=sqlquery; Rows=312; Columns=nr,title) |
|