2017-01-04 4 views
1

Здесь вы используете библиотеку tiff reader с клиентской стороны для преобразования TIFF-файла в изображение для пользовательского вида. Пользователь будет видеть только по одному, при условии, что он будет отображаться в следующем/предыдущем, здесь, когда пользователь разбивает страницы каждый раз на сервер получить tiff и отобразить его как изображение на экране. см код:Можно ли обрабатывать кеш в 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/). Это нетривиально, но не ** трудно ** per se ... –

ответ

1

Да, вы можете легко обрабатывать кеш в javascript.

Вы можете использовать localStorage, чтобы хранить что-либо в кэше. Он использует пару значений ключа для хранения значения и будет доступен для всех страниц вашего домена. Значение будет сохраняться, даже если браузер закрыт. В отличие от sessionStorage, который сохраняет значение до тех пор, пока браузер открыт, включая перезагрузку и восстановление.

Для записи LocalStorage использовать

localStorage['yourKey'] = 'yourValue'; 

для считывания данных с помощью

var stored = localStorage['yourKey']; 

значения будет видимыми для всех страниц одного и того же домена, из которого было написано значение.

Да, вы можете сохранить любое строковое значение в кеше.

Если вы хотите сохранить объект, который вы можете использовать

localStorage['yourKey'] = JSON.stringify(your_obj); и хранить значение

, а затем разобрать значение, чтобы получить объект

your_obj = JSON.parse(localStorage['yourKey']);

Для получения дополнительной информации Check Here