Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可以用Javascript处理缓存吗?_Javascript_Jquery_Html_Xmlhttprequest_Aurelia - Fatal编程技术网

可以用Javascript处理缓存吗?

可以用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',

在这里,我使用客户端的tiff阅读器库将tiff文件转换为图像供用户查看。用户一次只能看到一个,这里提供了分页以查看下一个/上一个,而用户每次按服务器分页以获取tiff并将其作为图像呈现在屏幕上。 参见代码:

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。是的,在具有的现代浏览器上,这是可能的。这不是小事,但本身并不难。。。