Javascript 如何缓存OData提要?

Javascript 如何缓存OData提要?,javascript,caching,odata,Javascript,Caching,Odata,我正在开发基于HTML5、CSS和JavaScript等web技术的OData客户端 我想做的是以一种简单的方式缓存最新版本(V3)的OData提要 我可以通过使用HTML5的本地或会话存储来实现该功能 但是,如果有任何缓存库,那么它将更加高效 我知道data.js,但它不能处理错误消息:“没有数据处理程序” 我在谷歌上搜索了错误信息,所以我修改了如下代码 var textHtmlHandler = { read: function (response, context) {

我正在开发基于HTML5、CSS和JavaScript等web技术的OData客户端

我想做的是以一种简单的方式缓存最新版本(V3)的OData提要

我可以通过使用HTML5的本地或会话存储来实现该功能

但是,如果有任何缓存库,那么它将更加高效

我知道data.js,但它不能处理错误消息:“没有数据处理程序”

我在谷歌上搜索了错误信息,所以我修改了如下代码

var textHtmlHandler = {
    read: function (response, context) {
        var contentType = response.headers["Content-Type"];
        if (contentType && contentType.indexOf("text/html") === 0) {
            response.data = response.body;
        } else {
            odata.defaultHandler.read(response, context);
        }
    },
    write: function (request, context) { }
}

OData.defaultHttpClient.enableJsonpCallback = true;
OData.read("http://localhost/OData/OData.svc/", function (data) {
    console.log(data);
},
function (err) {
    console.log(err);
},
textHtmlHandler);
现在它说:“ReferenceError”

我怀疑我的data.js代码是否正确,因为我不需要使用JSONP,因为它支持CORS

$.ajax({            
    url: "http://cross-domain-address/OData/OData.svc?$format=json",
    type: "GET",
    crossDomain: true,
    dataType: "json",
    success: a,
    error: b
});

function a(d) {
    console.log(d);
}

function b(d) {
    console.log(d);
}
你有什么想法吗


您可以为OData提要建议缓存库或更正代码。

我开发了一个用于客户端缓存数据的库。这里是链接


您可以使用J及其OData提供商的OData提要- 它在内部使用datajs操作,但为OData、WebSQL、SQLite和许多其他数据源提供了相同类型的API,因此您可以使用相同的语法将任何结果存储到浏览器dbs中

如果要在内存中缓存,可以尝试使用JayData Pro打包的


免责声明:我是JayData开发团队的成员,请随时提供有关该库或OData的更多信息,希望我能为您指出正确的博客帖子。

非常感谢您提供的信息。我将为下一版本的移动网站使用该库。
$.ajax({            
    url: "http://cross-domain-address/OData/OData.svc?$format=json",
    type: "GET",
    crossDomain: true,
    dataType: "json",
    success: a,
    error: b
});

function a(d) {
    console.log(d);
}

function b(d) {
    console.log(d);
}