arc:cache

Version 23.4.8843


arc:cache

Version 23.4.8843


arc:cache 关键字允许用户缓存脚本或模板的输出。缓存有助于限制资源密集型脚本的执行,这些脚本的输出不会改变。可以在指定的时间内将输出缓存到文件中,也可以将输出缓存到内存中,也可以使用基于优先级或基于事件的缓存。

参数

  • file:缓存输出的文件名称。要缓存到文件,除了 file 参数外,还必须指定 duration 参数或 dependency 参数。

    要为不同的输入参数值缓存不同版本的输出,请在文件名中包含参数值。

  • key:key 参数被用作将脚本的输出储存在内存缓存中。要缓存到内存中,必须指定 key 参数。

    和 file 属性类似,需要使用 script 变量去区分缓存对象。

  • duration:指定的间隔时间(分钟)。可用于缓存固定的时间,然后刷新缓存在内存中的对象或文件的内容。
  • priority:缓存到内存中时使用的优先级。只有当 key 被指定,priority 参数才是有效的。priority 的有效值有 Low,BelowNormal,Normal,AboveNormal,High 和 NotRemovable。
  • update:arc:cache 语句是否在调用时刷新缓存,默认为 false。
  • format:缓存的文件格式:SQLite 还是 RSS。默认为 RSS。
  • table:SQLite 数据库中缓存输出的表。
  • dependency:与 ASP.NET 缓存依赖的映射。当指定的文件改变,缓存中的对象会被删除。此文件或目录映射到 System.Web.Caching.CacheDependency(文件或目录)。

控制属性

示例

为每一个客户类型创建一个 .xml 文件。tofilename 格式化器用来确保生成的结果可以用作文件名称:

<arc:cache duration="10" file="cache_[customer_type |tofilename].xml"/>

将 customer_type 记录缓存到内存中,而不是缓存到文件中:

<arc:cache priority="Normal" key="cache_[customer_type]"/>

为请求中每个指定的状态创建一个新的缓存对象:

<arc:cache key="cache_[_request.state]"/>