> ## Documentation Index
> Fetch the complete documentation index at: https://docs.arc.cdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# arc:cache

> スクリプトまたはテンプレートのアウトプットをファイルまたはメモリにキャッシュします。プライオリティベースとタイムベースの両方のキャッシング戦略をサポートします。

export const siteNameShort = "Arc";

`arc:cache` キーワードは、スクリプト、もしくはテンプレートのアウトプットをキャッシュすることを可能にします。キャッシングは、アウトプットが変化しないと予測されるリソースインテンシブスクリプトの実行を抑える働きがあります。指定された期間中にアウトプットをファイルにキャッシュしたり、アウトプットをメモリにキャッシュすることができます。プライオリティベースまたはタイムベースのキャッシングが可能です。

## パラメータ

* **file**：アウトプットがキャッシュされるファイルの名前。ファイルにキャッシュするには、**duration** または**dependency** も指定しなければなりません。異なるインプットパラメータ値に対して異なるバージョンのアウトプットをキャッシュするには、ファイル名にパラメータ値を含めます。
* **key**：スクリプトのアウトプットをインメモリキャッシュに保存するために使うキー。インメモリキャッシュの場合には、このパラメータを指定する必要があります。**file** パラメータと同様に、キャッシュオブジェクトを区別するためにスクリプト変数を使うことができます。
* **duration**：分単位で指定された期間。これを使用して、一定の期間キャッシュし、その後メモリやファイルにキャッシュされたオブジェクトの内容をリフレッシュできます。
* **priority**：インメモリキャッシュにキャッシュするときに使用する優先順位。このパラメータは**key** が指定されている場合のみ有効です。有効な値は、`Low`、`BelowNormal`、`Normal`、`AboveNormal`、`High`、および`NotRemovable` です。
* **update**：`arc:cache` 構文が呼び出し時にキャッシュをリフレッシュするかどうか。デフォルト値は`false` です。
* **format**：キャッシュファイルの形式：SQLite またはRSS。デフォルトは`RSS` です。
* **table**：アウトプットがキャッシュされるSQLite データベースのテーブル。
* **dependency**：ASP.NET キャッシュ依存へのマッピング。指定されたファイルに変更があると、キャッシュのオブジェクトが削除されます。このファイルまたはディレクトリは、`System.Web.Caching.CacheDependency(fileOrDir)` にマップされます。

## アトリビュートの制御

None

## 例

顧客タイプごとにXML ファイルを作成します。[tofilename](../value-formatters/file-formatters#tofilename) フォーマッタを使用して、結果として得られる名前がファイル名として使用できることを確認します。

```xml theme={null}
<arc:cache duration="10" file="cache_[customer_type |tofilename].xml"/>
```

`customer_type` レコードを、ファイルの代わりにインメモリにキャッシュします：

```xml theme={null}
<arc:cache priority="Normal" key="cache_[customer_type]"/>
```

リクエストで指定されたステートごとに新しいキャッシュオブジェクトを作成します：

```xml theme={null}
<arc:cache key="cache_[_request.state]"/>
```
