可以用Javascript处理缓存吗?
在这里,我使用客户端的tiff阅读器库将tiff文件转换为图像供用户查看。用户一次只能看到一个,这里提供了分页以查看下一个/上一个,而用户每次按服务器分页以获取tiff并将其作为图像呈现在屏幕上。 参见代码:可以用Javascript处理缓存吗?,javascript,jquery,html,xmlhttprequest,aurelia,Javascript,Jquery,Html,Xmlhttprequest,Aurelia,在这里,我使用客户端的tiff阅读器库将tiff文件转换为图像供用户查看。用户一次只能看到一个,这里提供了分页以查看下一个/上一个,而用户每次按服务器分页以获取tiff并将其作为图像呈现在屏幕上。 参见代码: var costructUrl = 'http://cdn.dmsapp.tk/'+appUrl+'/'+evt+'?authToken='+this.getuserservice.authorizationfun()+'&force=false'; xhr.open('GET',
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();
var-costructururl='1〕http://cdn.dmsapp.tk/“+appUrl+”/“+evt+”?authToken=”+this.getuserservice.authorizationfun()+”&force=false';xhr.open('GET',costructururl);xhr.responseType='arraybuffer';
xhr.onload=函数(e){
var页面=[];
var buffer=xhr.response;
var tiff=新的tiff({buffer:buffer});
var len=tiff.countDirectory();
var currentPage=索引;
if(currentPage
我的问题是,是否可以将xhr.response存储在缓存中,以防止每次服务器被命中 是的,您可以非常轻松地在javascript中处理缓存 您可以使用
localStorage
来存储任何要缓存的内容,它使用键值对来存储值,并且它将可用于域的所有页面。即使浏览器关闭,该值也将保持不变。与sessionStorage
不同,它在浏览器打开时存储值,包括页面重新加载和恢复
要写入本地存储,请使用
localStorage['yourKey'] = 'yourValue';
要读取数据,请使用
var stored = localStorage['yourKey'];
该值将对从中写入该值的同一域的所有页面可见
是的,您可以将任何字符串值存储到缓存中
如果要存储对象,可以使用
localStorage['yourKey']=JSON.stringify(您的对象)编码>并存储值
然后解析该值以获取对象
your_obj=JSON.parse(localStorage['yourKey'])
有关详细信息ServiceWorkers。是的,在具有的现代浏览器上,这是可能的。这不是小事,但本身并不难。。。