A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://developer.mozilla.org/ja/docs/Web/API/Request/cache below:

Request: cache プãƒãƒ‘ティ - Web API

Request: cache プロパティ

Baseline Widely available *

メモ: この機能はウェブワーカー内で利用可能です。

cache は Request インターフェイスの読み取り専用プロパティで、リクエストのキャッシュモードを保持します。リクエストがブラウザーの HTTP キャッシュ とどのように作用するかを制御します。

値

RequestCache 値です。使用可能な値は次のとおりです。

例
// キャッシュを完全にバイパスするために、キャッシュ無効で
// リソースをダウンロードします。
fetch("some.json", { cache: "no-store" }).then((response) => {
  /* レスポンスを消費 */
});

// キャッシュ無効でリソースをダウンロードしますが、
// ダウンロードしたリソースで HTTP キャッシュを更新します。
fetch("some.json", { cache: "reload" }).then((response) => {
  /* レスポンスを消費 */
});

// 正しい ETag および Date ヘッダーを送信し、If-Modified-Since と
// If-None-Match リクエストヘッダーを適切に処理するよう適切に
// 構成されたサーバーを扱う際には、キャッシュ無効でリソースを
// ダウンロードします。これにより、新鮮なレスポンスを保証する
// 検証をシンラインすることができます。
fetch("some.json", { cache: "no-cache" }).then((response) => {
  /* レスポンスを消費 */
});

// 経済性を考慮してリソースをダウンロードします。できるだけ多くの
// 帯域幅を確保するために、キャッシュされた古いレスポンスを優先します。
fetch("some.json", { cache: "force-cache" }).then((response) => {
  /* レスポンスを消費 */
});

// 単純な期限切れを再検証するクライアントレベルの実装。
// キャッシュされた古いレスポンスを優先しますが、あまりにも古い場合は更新します。
// AbortController および signal により、よりよくメモリーの掃除ができます。
// 実際には、値を変更する必要があるため、パスとコントローラーの参照を取る関数となります。
let controller = new AbortController();
fetch("some.json", {
  cache: "only-if-cached",
  mode: "same-origin",
  signal: controller.signal,
})
  .catch((e) =>
    e instanceof TypeError && e.message === "Failed to fetch"
      ? { status: 504 } // Chrome の回避策。TypeError で失敗する
      : Promise.reject(e),
  )
  .then((res) => {
    if (res.status === 504) {
      controller.abort();
      controller = new AbortController();
      return fetch("some.json", {
        cache: "force-cache",
        mode: "same-origin",
        signal: controller.signal,
      });
    }
    const date = res.headers.get("date"),
      dt = date ? new Date(date).getTime() : 0;
    if (dt < Date.now() - 86_400_000) {
      // 24 時間以上古ければ
      controller.abort();
      controller = new AbortController();
      return fetch("some.json", {
        cache: "reload",
        mode: "same-origin",
        signal: controller.signal,
      });
    }

    // その他の条件
    if (dt < Date.now() - 300_000)
      // 5 分以上古ければ
      fetch("some.json", { cache: "no-cache", mode: "same-origin" }); // no cancellation or return value.
    return res;
  })
  .then((response) => {
    /* (おそらく古い)レスポンスを消費する */
  })
  .catch((error) => {
    /* AbortError/DOMException または TypeError となる */
  });
仕様書 ブラウザーの互換性 関連情報

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4