2017-01-04 18 views
1

ここでは、クライアント側からTIFFファイルをユーザービューのイメージに変換するTIFFリーダーライブラリを使用しています。ユーザーは一度に1つのみ表示され、次回/前のページを表示するページングを提供します。ティフを取得し、それを画面上のイメージとしてレンダリングします。Javascriptでキャッシュを扱うことはできますか?

var costructUrl = 'http://cdn.dmsapp.tk/'+appUrl+'/'+evt+'?authToken='+this.getuserservice.authorizationfun()+'&force=false'; xhr.open('GET', costructUrl); xhr.responseType = 'arraybuffer'; 
      xhr.onload = function (e) { 
      var pages = []; 
      var buffer = xhr.response; 
      var tiff = new Tiff({buffer: buffer}); 
      var len = tiff.countDirectory(); 
      var currentPage = index; 
      if (currentPage < len) getTiff();function getTiff(){ 
       tiff.setDirectory(currentPage); 
       var canvas = tiff.toCanvas(); 
       var ctx = canvas.getContext('2d'); 
       pages.push(canvas.toDataURL()); if ((currentPage+1 < len && currentPage < limit)) { 
        currentPage++; 
        getTiff();   // get next page 
       } 
       } 
      } 
     };xhr.send(); 

私の質問ですが、それは、キャッシュにxhr.responceを保存するために、サーバは毎回ヒットを防止することが可能です: はコードを参照してください。 see pagination inside redmark

+2

ServiceWorkers – dfsq

+0

localStorageを使用 – anshuVersatile

+0

はい、現代のブラウザでは[サービスワーカー](https://www.w3.org/TR/service-workers/)で可能です。それは自明ではありませんが、**ハード**それ自体ではありません... –

答えて

1

はい、JavaScriptを非常に簡単に処理できます。

localStorageを使用してキャッシュに何かを保存することができます。キー値のペアを使用して値を保存し、ドメインのすべてのページで使用できるようになります。ブラウザが閉じても値は保持されます。 sessionStorageとは異なり、ページの再読み込みやリストアを含め、ブラウザが開いている間は値を格納します。

値は値が書かれたから、同じドメインのすべてのページに表示されます

var stored = localStorage['yourKey']; 

を使用し、データを読み取るために

localStorage['yourKey'] = 'yourValue'; 

を使用するのlocalStorageに書き込むために。

はい、任意の文字列値をキャッシュに格納できます。

あなたは

localStorage['yourKey'] = JSON.stringify(your_obj);を使用して値に

を保存し、後で

your_obj = JSON.parse(localStorage['yourKey'])をオブジェクトを取得した値を解析することができ、オブジェクトを格納する場合。

詳細情報Check Here

関連する問題