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

# arc:cache

> 將指令碼或範本的輸出快取到檔案或記憶體中，支援基於優先順序和基於時間的快取策略。

export const siteNameShort = "知行之橋";

arc:cache 關鍵字允許使用者快取指令碼或範本的輸出。快取有助於限制資源密集型指令碼的執行，這些指令碼的輸出不會改變。可以在指定的時間內將輸出快取到檔案中，也可以將輸出快取到記憶體中，也可以使用基於優先順序或基於時間的快取。

## 參數

* **file**：輸出快取到的檔案的名稱。要快取到檔案，還必須指定 **duration** 或 **dependency** 參數。要為不同的輸入參數值快取不同版本的輸出，請在檔名中包含參數值。
* **key**：用於將指令碼輸出儲存在記憶體快取中的鍵。要快取在記憶體中，必須指定此參數。與 **file** 參數一樣，您可以使用指令碼變數來區分快取物件。
* **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` 格式化器用來確保生成的結果可以用作檔名稱：

```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]"/>
```
