2

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

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

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

但是,如果有任何缓存库,那么它会更有效。

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

OData.defaultHttpClient.enableJsonpCallback = true;        
OData.read("http://localhost/OData/OData.svc/GetDatasets", function (data) {
    console.log(data);
},
function (err) {
    console.log(err);
});

我用错误消息搜索了它,所以我修改了这样的代码。

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 提要建议缓存库或更正代码。

4

2 回答 2

1

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

请点击这里jquery.cache-1.0.0

于 2013-06-24T09:17:08.207 回答
0

您可以使用JayData 库及其 OData 提供程序使用 OData 提要 -使用 JayData 的 OData 食谱 它在内部使用 datajs 操作,但为 OData、WebSQL、SQLite 和许多其他数据源提供相同类型的 API - 因此您可以将任何结果存储到具有相同语法的浏览器内数据库。

如果想缓存在内存中,可以试试JayData Pro 自带的QueryCache 模块

免责声明:我是 JayData 开发团队的成员,请随时了解有关库或 OData 的更多信息,希望我能够为您指出正确的博文。

于 2013-07-10T10:03:31.867 回答