是否可以在Javascript中处理缓存?

时间:2017-01-04 11:40:14

标签: javascript jquery html5 xmlhttprequest aurelia

这里使用,来自客户端的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();

我的问题是,是否可以在缓存中存储 xhr.responce ,以防止服务器每次都被点击。 see pagination inside redmark

1 个答案:

答案 0 :(得分: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