我们的项目目前使用Silverlight来使用Odata服务。这使得工作变得非常简单,因为我们可以只引用OData服务,从而得到生成的服务引用/实体。
然而,关于我们是否应该转向超文本标记语言(html5),还有一些讨论。我想知道如果我们做这个改变会发生什么。当然,我们会利用像jQuery这样的框架。
谢谢!
发布于 2012-04-12 03:23:32
JSON,这样你的网页就可以XHR你的数据,并以OData sources can return data as JSON的形式接收它,它被反序列化为一个Javascript对象,供你拆分并执行或显示。
以下是一些帮助您入门的附加链接:
HTH。
发布于 2012-04-12 08:03:24
我们还制作了一个非常酷的小库,叫做Data.js (http://datajs.codeplex.com/),它将极大地提高JavaScript中的OData消耗速度。以下是CoffeeScript中的一个示例:
success = (data) -> $("#searchResultsTemplate").tmpl(data).appendTo("#resultsArea")
error = (err) -> $("#resultsArea").text(JSON.stringify(err.message))
do ->
$("#search").click(->
OData.defaultHttpClient.enableJsonpCallback = true
OData.read("http://odata.netflix.com/v2/Catalog/Titles?$top=5", success, error))
以及它生成的JavaScript:
success = function(data) {
return $("#searchResultsTemplate").tmpl(data).appendTo("#resultsArea");
};
error = function(err) {
return $("#resultsArea").text(JSON.stringify(err.message));
};
(function() {
return $("#search").click(function() {
OData.defaultHttpClient.enableJsonpCallback = true;
return OData.read("http://odata.netflix.com/v2/Catalog/Titles?$top=5", success, error);
});
})();
到目前为止,我已经成功地在CoffeeScript、jQuery和Knockout.js上使用了它。
发布于 2012-05-02 21:52:26
作为另一种选择,您可以尝试JayData,它具有oData支持-基于超酷的datajs库。它在几个存储提供商或协议上提供了一个抽象的数据访问层,其中一个重要的协议就是OData。
上面提到的查询如下所示
var source = new $data.yourOdataContext({serviceUri:"http://odata.netflix.com/v2/Catalog"});
source.Titles
.take(5)
.forEach( function(catalog) { render(catalog); });
因为您可能不希望将其转换为.../Titles?$filter=5,所以操作不是在客户端完成的,即使简单的语法可能会建议这样做。
JayData将为您提供JavaScript Language Query (JSLQ),让您可以使用ES5标准过滤器函数查询数据:只需使用JavaScript,无需OData查询语法知识。
https://stackoverflow.com/questions/10112376
复制相似问题