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));});


フィードバック