最終更新日:2024-09-03 17:00:36
この例では、Edge Cloud Apps関数を使用して動的コンテンツの適応を実現する方法を示します。以下のコードスニペットは、訪問者のブラウザの種類に基づいてページコンテンツを動的に書き換える方法を示しています。ユーザーがChromeを使用してページにアクセスしている場合、コンテンツは書き換えられます。それ以外の場合は、元のコンテンツは変更されずに残ります。
async function handleRequest(request) {
// 元のリクエストを取得し、レスポンスを取得します
let response = await fetch(request);
// カスタムレスポンスヘッダーを設定します
response.headers.set("X-Version", "petshop-v1");
// リクエストがChromeブラウザからのもので、レスポンスのコンテンツタイプがHTMLであるかどうかを確認します
if (isFromChrome(request) && isHtml(response)) {
console.log("ページコンテンツを書き換えています...");
// レスポンス本文のテキストを取得し、置換を実行します
let body = await response.text();
body = body.replace('Make Your Pets Happy');
body = body.replace(
'Dolore tempor clita lorem rebum kasd eirmod dolore diam eos kasd.',
);
// 変更されたレスポンスを返します
return new Response(body, response);
} else {
console.log("元のページコンテンツを通過しています...");
return response;
}
}
// リクエストがChromeブラウザから発信されたかどうかを判断します
function isFromChrome(request) {
let userAgent = request.headers.get("User-Agent");
return userAgent && userAgent.toLowerCase().includes("chrome");
}
// レスポンスのコンテンツタイプがHTMLかどうかを判断します
function isHtml(response) {
let contentType = response.headers.get("Content-Type");
return contentType && contentType.toLowerCase().includes("text/html");
}
// 着信リクエストを処理するためにFetchイベントリスナーを追加します
addEventListener("fetch", event => {
event.respondWith(handleRequest(event.request));
});
この例では、ユーザーのブラウザの種類を検出し、それに応じてHTMLコンテンツを変更することにより、動的コンテンツの適応を実装する方法を示しています。コンテンツの書き換えには多くのアプリケーションがあり、以下は成熟したオンラインシナリオのいくつかです。