淺談JavaScript的Polymer架構中的behaviors對象_基礎知識

來源:互聯網
上載者:User

localStorage 應是家喻戶曉的?但本機存放區這個家族可遠不止它。以前扯過 sessionStorage,現在還有個神奇的 CacheStorage。它用來儲存 Response 對象的。也就是說用來對 HTTP ,響應做緩衝的。雖然 localStorage 也能做,但是它可能更專業。
  CacheStorage 在瀏覽器上的引用名叫 caches 而不是駝峰寫法的 cacheStorage,它定義在 ServiceWorker 的規範中。CacheStorage 是多個 Cache 的集合,而每個 Cache 可以儲存多個 Response 對象。
  廢話不能說再多,下面是 demo

<script>caches.delete('c1');caches.delete('c2');Promise.all([ caches.open('c1').then(function(cache) {  return cache.put('/hehe', new Response('aaa', { status: 200 })); }), caches.open('c2').then(function(cache) {  return cache.put('/hehe', new Response('bbb', { status: 200 })); })]).then(function() { return caches.match('/hehe');}).then(function(response) { return response.text();}).then(function(body) { console.log(body);});</script>

  首先,在 caches 上調用 open 方法就可以非同步地得到一個 Cache 對象的引用。在這個對象上我們可以把 Response 對象 put 進去(參數是一個 URL 和一個 Response 對象)、用 match 方法取出(傳入一個 URL 取出對應的 Response 對象)。
  match 方法不僅可以在 Cache 上調用 CacheStorage 上也有 match 方法,比如上面例子就開啟了兩個 Cache,都寫入一個叫 /hehe 的 URL。在寫入操作完成之後,到外部的 CacheStorage 上調用 match 方法來匹配 /hehe,結果是隨機的(沒找到這個規則在哪裡定義的)。
  雖然上面的例子中只對 Cache 對象 put 了一個資料,而 Cache 對象本身可以存放更多的 URL/Response 對。並且提供了 delete(使用者刪除)、keys(用於遍曆)等方法。但是 Cache 並不像 localStorage 一樣有 clear 方法,如果非要清空一個 Cache,可以直接在 CacheStorage 上把整個 Cache 給 delete 掉再重新 open。
  這套 API 和 ServiceWorker 一家的,它通常被用於 ServiceWorker 中,整個設計風格也和 ServiceWorker 一樣都基於 Promise。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.