tencent cloud

Tencent Cloud EdgeOne

Cache APIの使用

ダウンロード
フォーカスモード
フォントサイズ
最終更新日: 2026-10-15 18:25:50
AI翻訳
エッジ関数内で、Fetch APIを使用してリモートリソースjQuery.jsを取得し、Cache APIを利用してリソースをEdgeOneエッジノードにキャッシュします。キャッシュ時間は10秒です。

サンプルコード

async function fetchJquery(event, request) {
const cache = caches.default;
// キャッシュがヒットしなかったため、オリジンにアクセスしてキャッシュします。
let response = await fetch(request);

// レスポンスヘッダーにCache-Controlを追加し、キャッシュ時間を10秒に設定します。
response.headers.append('Cache-Control', 's-maxage=10');
event.waitUntil(cache.put(request, response.clone()));

}
response.headers.append('x-edgefunctions-cache', 'miss');
return response;
}

async function handleEvent(event) {
// リソースアドレス。キャッシュキーとしても使用されます。
const request = new Request('https://static.cloudcachetci.com/qcloud/main/scripts/release/common/vendors/jquery-3.2.1.min.js');
// キャッシュデフォルトインスタンス。
const cache = caches.default;

try {
// 関連するキャッシュ内容を取得します。キャッシュが存在する場合、インターフェースの基盤は能動的にオリジンにアクセスせず、504エラーを返します。
let response = await cache.match(request);

// キャッシュが存在しないため、リモートリソースを再取得します。
if (!response) {
return fetchJquery(event, request);
}

// キャッシュにヒットしたため、レスポンスヘッダーに識別子を設定します。
response.headers.append('x-edgefunctions-cache', 'hit');

return response;
} catch (e) {
await cache.delete(request);
// キャッシュの期限切れまたはその他の異常により、リモートリソースを再取得します。
return fetchJquery(event, request);
}
}

addEventListener('fetch', (event) => {
event.respondWith(handleEvent(event));
});

サンプルプレビュー

ブラウザのアドレスバーにエッジ関数のトリガールールに一致するURLを入力すると、サンプル効果をプレビューできます。
}

キャッシュにヒットしました。


関連参考

ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック