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 | Copy Code |
---|---|
<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 | Copy Code |
---|---|
Cached: true under key 2EF0CDFECD1983946B6A6815D4970F3A SXMLDataTable (Name=sqlquery; Rows=312; Columns=nr,title) |