Silverlight 服务器端数据分页使用 REST?
Posted
技术标签:
【中文标题】Silverlight 服务器端数据分页使用 REST?【英文标题】:Silverlight server-side data paging using REST? 【发布时间】:2012-08-08 06:14:59 【问题描述】:谁能指出最有效的方法,或者在这一点上,使用 MVC RESTful API 层在 Silverlight 中进行服务器端分页的任何方法?
我有一个非常大的开销调用,假设它可以返回成千上万个复杂对象,而这些对象本身又可以包含几十个复杂对象。 我想使用寻呼将其限制为每次调用 10 个。
我正在查看 Silverlight DataPager,虽然您可以使用 RIA 服务进行服务器端分页,但我不确定如何合并 REST API 调用。
我打算自己简单地修改我的 API 调用以接受要返回的记录的起点和计数,但尽管这适用于 API/服务器端,但会读取 Silverlight 的 DataPager“PageCount”和其他项目-only,我无法手动设置那些知道我的数据集数量的人。
唯一的补救办法是继续我的方式,但创建我自己的 UserControl 并以某种方式覆盖该只读功能吗?
【问题讨论】:
您当前的解决方案有什么问题? RIA 与 REST 有什么关系? 我当前解决方案的问题除了我必须从头开始手动进行分页这一事实之外,使用标准 Silverlight 寻呼机,所有内容都是只读的。所以我不能手动设置页数或任何东西。我必须想出我自己的专有寻呼机。 我不理解“downvote”并认为这很幼稚,但无论如何我感谢您的建议并决定走另一条路。 当您对该问题的答案投了两次反对票时,该评论似乎有点虚伪。也许你应该考虑发表评论。您的问题可能过于具体,因为只有您可以回答。 我确实评论了整个问题本身,而不是专门针对答案。答案并没有解决手头的问题,我已经特别给出了我确实沿着建议的道路前进的原因。 【参考方案1】:我只是让我们的 UX 设计师创建了一个新的分页 UI 控件,我自己手动管理它并使用我自己的分页 REST API。
【讨论】:
【参考方案2】:Silverlight HTTP 堆栈不适用于 REST。基于浏览器的请求的默认模式将请求转换为 200 或 404。这意味着您必须使用客户端模式才能使用 here 等技术。您可以使用Client Stack - 但这也是有限的。
REST 中的分页通常像链表一样实现。您的回复包含指向下一组对象的链接。
WCF RIA 是一种生成客户端和服务器端代码的技术。我不明白它与 REST 有何关系。使用 REST 或 WCF RIA。
【讨论】:
嗯...Silverlight 不能处理除了 200 或 404 以外的其他响应,这并不完全正确。从 v3 开始,我们拥有客户端网络堆栈,可以让您使用比基于浏览器的堆栈更多的东西。看看:wintellect.com/CS/blogs/jprosise/archive/2009/10/14/… 已更新 - 问题有点……困惑。我同意你的 RIA 回答。【参考方案3】:我认为在 silverlight 上获取数据的最佳方式是 WCF Ria Services。这是一堆基于 WCF 构建的代码,但它允许您使用动态 linq 过滤/排序/分页和分组客户端查询您的数据源。看看http://blogs.msdn.com/b/saurabh/archive/2009/11/23/understanding-the-wcf-in-wcf-ria-services.aspx
就可维护性/性能而言,我已经使用这项技术构建并共同开发了一个内部站点,该技术在大约 300 个类的数据模型上为 500 多名当代用户提供服务,我认为通过普通 WCF I 提供相同的功能会花费更多的开发人员时间。但是请注意,WCF RIA 它有点固执己见,您可能需要欺骗一些东西,但是,WCF RIA 它是高度可定制的,尤其是在服务器端。
【讨论】:
以上是关于Silverlight 服务器端数据分页使用 REST?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Datatable 以 POST 类型传递请求正文数据以使用 Javascript 进行服务器端分页
使用 jquery 数据表进行服务器端处理,包括分页、过滤和搜索