CacheAPIはServiceWorker仕様の一部であり、リソースのキャッシュをさらに強化するための優れた方法です。
- 前書き
- キャッシュAPIが利用可能かどうかを検出します
- キャッシュを初期化する
- キャッシュにアイテムを追加する
- キャッシュからアイテムを取得する
- キャッシュ内のすべてのアイテムを取得します
- 利用可能なすべてのキャッシュを取得します
- キャッシュからアイテムを削除します
- キャッシュを削除する
前書き
CacheAPIはServiceWorker仕様の一部であり、リソースのキャッシュをさらに強化するための優れた方法です。
それはあなたがすることができますURLアドレス可能なリソースをキャッシュする、これはアセット、Webページ、HTTPAPI応答を意味します。
それはないデータの個々のチャンクをキャッシュすることを意味します。これは、IndexedDB API。
現在、Chrome> = 40、Firefox> = 39、Opera> = 27で利用できます。
SafariとEdgeは最近、そのサポートを導入しました。
InternetExplorerはそれをサポートしていません。
モバイルサポートはAndroidで有効であり、AndroidWebviewとChromefor Androidでサポートされていますが、iOSではOperaMobileとFirefoxMobileのユーザーのみが利用できます。
キャッシュAPIが利用可能かどうかを検出します
キャッシュAPIは、caches
オブジェクト。 APIがブラウザに実装されているかどうかを検出するには、以下を使用してAPIの存在を確認します。
if ('caches' in window) {
//ok
}
キャッシュを初期化する
使用caches.open
を返すAPI約束するとともにキャッシュオブジェクト使用する準備ができました:
caches.open('mycache').then(cache => {
// you can start using the cache
})
mycache
初期化するキャッシュを識別するために使用する名前です。変数名のようなもので、好きな名前を使用できます。
キャッシュがまだ存在しない場合は、caches.open
それを作成します。
キャッシュにアイテムを追加する
ザ・cache
オブジェクトは、アイテムをキャッシュに追加するための2つのメソッドを公開します。add
そしてaddAll
。
cache.add()
add
単一のURLを受け入れ、呼び出されると、リソースをフェッチしてキャッシュします。
caches.open('mycache').then(cache => {
cache.add('/api/todos')
})
文字列の代わりにフェッチをより細かく制御できるようにするには、リクエストオブジェクト、の一部フェッチAPI仕様:
caches.open('mycache').then(cache => {
const options = {
// the options
}
cache.add(new Request('/api/todos', options))
})
cache.addAll()
addAll
配列を受け入れ、を返します約束するすべてのリソースがキャッシュされたとき。
caches.open('mycache').then(cache => {
cache.addAll(['/api/todos', '/api/todos/today']).then(() => {
//all requests were cached
})
})
手動でフェッチして追加
cache.add()
リソースを自動的にフェッチし、キャッシュします。
キャッシュAPIは、これを介してよりきめ細かい制御を提供しますcache.put()
。リソースをフェッチしてから、キャッシュAPIに応答を保存するように指示する必要があります。
const url = '/api/todos'
fetch(url).then(res => {
return caches.open('mycache').then(cache => {
return cache.put(url, res)
})
})
キャッシュからアイテムを取得する
cache.match()
を返します応答ネットワーク要求の要求と応答に関するすべての情報を含むオブジェクト
caches.open('mycache').then(cache => {
cache.match('/api/todos').then(res => {
//res is the Response Object
})
})
キャッシュ内のすべてのアイテムを取得します
caches.open('mycache').then(cache => {
cache.keys().then(cachedItems => {
//
})
})
cachedItemsの配列ですリクエスト内のリソースのURLを含むオブジェクトurl
プロパティ。
利用可能なすべてのキャッシュを取得します
ザ・caches.keys()
メソッドは、使用可能なすべてのキャッシュのキーを一覧表示します。
caches.keys().then(keys => {
// keys is an array with the list of keys
})
キャッシュからアイテムを削除します
与えられたcache
オブジェクト、そのdelete()
メソッドは、キャッシュされたリソースをそこから削除します。
caches.open('mycache').then(cache => {
cache.delete('/api/todos')
})
キャッシュを削除する
ザ・caches.delete()
メソッドはキャッシュ識別子を受け入れ、実行されると、キャッシュとそのキャッシュされたアイテムをシステムからワイプします。
caches.delete('mycache').then(() => {
// deleted successfully
})
私の無料ダウンロードJavaScriptビギナーズハンドブック
その他のブラウザチュートリアル:
- HTML5で利用できるいくつかの便利なトリック
- CMSベースのWebサイトをオフラインで機能させる方法
- プログレッシブウェブアプリの完全ガイド
- Fetch API
- プッシュAPIガイド
- チャネルメッセージングAPI
- サービスワーカーのチュートリアル
- キャッシュAPIガイド
- 通知APIガイド
- IndexedDBに飛び込む
- セレクターAPI:querySelectorおよびquerySelectorAll
- 延期と非同期でJavaScriptを効率的にロードする
- ドキュメントオブジェクトモデル(DOM)
- Web Storage API:ローカルストレージとセッションストレージ
- HTTPCookieのしくみを学ぶ
- 履歴API
- WebP画像形式
- XMLHttpRequest(XHR)
- 詳細なSVGチュートリアル
- データURLとは
- Webプラットフォームを学ぶためのロードマップ
- CORS、クロスオリジンリソースシェアリング
- Webワーカー
- requestAnimationFrame()ガイド
- Doctypeとは何ですか
- DevToolsコンソールとコンソールAPIの操作
- 音声合成API
- プレーンJavaScriptでDOMreadyイベントを待つ方法
- DOM要素にクラスを追加する方法
- querySelectorAllからDOM要素をループする方法
- DOM要素からクラスを削除する方法
- DOM要素にクラスがあるかどうかを確認する方法
- DOMノード値を変更する方法
- querySelectorAllから返されたDOM要素のリストにクリックイベントを追加する方法
- WebRTC、リアルタイムWeb API
- JavaScriptで要素のスクロール位置を取得する方法
- DOM要素を置き換える方法
- 入力ファイルフィールドの画像のみを受け入れる方法
- なぜブラウザのプレビューバージョンを使用するのですか?
- Blobオブジェクト
- ファイルオブジェクト
- FileReaderオブジェクト
- FileListオブジェクト
- ArrayBuffer
- ArrayBufferView
- URLオブジェクト
- 型付き配列
- DataViewオブジェクト
- BroadcastChannel API
- Streams API
- FormDataオブジェクト
- ナビゲーターオブジェクト
- GeolocationAPIの使用方法
- getUserMedia()の使用方法
- ドラッグアンドドロップAPIの使用方法
- Webページのスクロールを操作する方法
- JavaScriptでのフォームの処理
- キーボードイベント
- マウスイベント
- タッチイベント
- DOM要素からすべての子を削除する方法
- バニラJavascriptを使用してHTML属性を作成する方法
- JavaScriptを使用してチェックボックスがチェックされているかどうかを確認するにはどうすればよいですか?
- JavaScriptを使用してクリップボードにコピーする方法
- JavaScriptを使用してボタンを無効にする方法
- ブラウザでページを編集可能にする方法
- URLSearchParamsを使用してJavaScriptでクエリ文字列値を取得する方法
- ページからすべてのCSSを一度に削除する方法
- insertAdjacentHTMLの使用方法
- Safari、終了する前に警告する
- JavaScriptを使用してDOMに画像を追加する方法
- フォームをリセットする方法
- GoogleFontsの使い方