Jquery使用本地存储缓存Ajax XMLHttpResponse

我有一个需要升级的Jquery网站以提供本地存储缓存function,如果有缓存的响应HTML,Target会先对每个Ajax请求进行检查,然后它不会调用服务器端,而是从缓存中获取数据。 从缓存中缓存和显示数据等一切正常。

将我的缓存核心应用于严重依赖于XML HTTP响应标头的网站时出现了我的问题; 看来当我尝试在使用JSON.Stringify()序列化后,尝试缓存从ajax调用返回的XMLHttpResponse对象时,从JSON.Parse()返回的desearialized对象不包含响应标题!

我必须从包含所有先前添加的标头的缓存中返回XMLHttpResponse对象,因为所有网站都将其作为XMLHttpResponse的对象处理。

有任何想法吗?

我找到了一个解决这个问题的工作……

由于All Sites需要一个XMLHttpResponse对象来处理,我构建了类似Custom XMLHttpResponse类的东西,这个类包含这些站点中使用的所有变量/函数,如下例所示:

 var CustomXMLHTTPResponse = { ResponseHeadersArr: new Array(), getResponseHeader: function (Key) { return this.ResponseHeadersArr[Key]; } . . } 

而不是缓存整个对象,我只缓存我需要的原始XMLHttpResponse对象,实际上我在这种情况下缓存所有响应标头; 当我从缓存中获取这些数据时,我构建了一个新的CustomXMLHTTPResponse对象,然后用从缓存中获取的数据填充它,最后我传递了CustomXMLHTTPResponse对象。

因此,当调用CustomXMLHTTPResponse类中的函数getResponseHeader()时,它将与原始XMLHTTPResponse类中的getResponseHeader()行为相同。