Eug*_*rin 16 javascript ajax caching cache-control browser-cache
我正在实现一个Javascript模块管理器,通过XHR对象加载javascript文件.这种方法的问题是资源缓存:
XHR依靠内置的浏览器缓存机制,但是它的行为取决于浏览器的实现.localStorage,有一个basket.js它使用localStorage缓存下载的脚本,问题是存储大小限制通常是5-10MB.此外,localStorage是许多脚本的共享位置,它们也使用它来存储数据.Cache的接口ServiceWorkerAPI,但它只能在可ServiceWorker运行,因此怀疑地适合我的需要. 有谁知道他在他的项目中使用的一些聪明的旧的或新的javascript缓存技术,或者听说过?
注意:请不要建议使用.ajax作为接口的jQuery XHR,或者实现内置Javascript功能接口的任何其他库.
编辑:有一些有价值的建议:
这是特定的JQUERY ....
你可以将ajax设置为缓存.
$.ajaxSetup({ cache: true});
Run Code Online (Sandbox Code Playgroud)
如果对于特定的调用,您不想进行缓存响应,则调用
$.ajax({
url: ...,
type: "GET",
cache: false,
...
});
Run Code Online (Sandbox Code Playgroud)
如果您想要相反(特定调用的缓存),您可以在开头设置false,为特定调用设置true
如果要存储ajax响应的结果,可以使用本地存储.所有现代浏览器都为您提供存储api.您可以使用它们(localStorage或sessionStorage)来保存数据.
您所要做的就是在收到响应后将其存储到浏览器存储中.然后,下次找到相同的呼叫时,搜索是否已保存响应.如果是,请从那里返回答复; 如果没有打个电话.
Smartjax插件也做类似的事情; 但是由于您的要求只是保存调用响应,您可以在jQuery ajax成功函数中编写代码以保存响应.在拨打电话之前,请检查响应是否已保存.
| 归档时间: |
|
| 查看次数: |
5914 次 |
| 最近记录: |