我最近在我的客户端Web开发中使用了Steve Sanderson的淘汰js库http://knockoutjs.com/。我刚刚发现微软为jQuery提供了一个数据链接插件的代码,这个插件似乎与我喜欢的淘汰版重复。
http://weblogs.asp.net/scottgu/archive/2010/10/04/jquery-templates-data-link-and-globalization-accepted-as-official-jquery-plugins.aspx
https://github.com/jquery/jquery-datalink
http://api.jquery.com/category/plugins/data-link/
我应该删除我的淘汰代码并使用受欢迎和扩展的jQuery吗?
答案 0 :(得分:19)
我个人坚持使用Knockout - 它已经been demonstrated to work quite well,它正在积极开发中,当你比较功能时它会从图表中敲出数据链接。简而言之,Knockout似乎准备好迎接黄金时段,而数据链接感觉还未完成。
(我强调测试了Knockout,它将数据绑定到5,000个项目的数组,同时还计算数组中唯一项目的数量,并将其添加到另一个数据绑定元素。我的计算和重新计算浏览器chrome的绘制花费的时间比数据绑定和更新要长得多。)
现在,话虽如此,我会密切关注数据链接并可能继续使用它 - 如果它开始实施,它将是一个非常可行的选择。 (鉴于jquery-tmpl的成功,这是Microsoft-Jquery合作的另一个主要部分。)
更好的一个to compare Knockout to将是documentcloud的backbone
。我正在研究下周的骨干,所以我现在没有任何好的建议,但我已经非常对underscore(他们的另一个项目)印象深刻,所以我肯定会建议将其作为替代方案。
Knockout多年来一直在各种项目的生产中使用,现在已经是第3版,并且围绕着它拥有健康的生态系统。 jQuery.datalink成为JSViews,目前仍处于测试阶段。
答案 1 :(得分:9)
我一直在深入挖掘Knockout,我发现它可靠且可扩展。一旦进入思维模式,我认为这是我在浏览器中看到的最佳开发者体验。
答案 2 :(得分:3)
请注意,jQuery数据链接仅适用于Form元素。 Knockoutjs可用于许多其他类型的绑定,例如属性,css,这非常有用。
答案 3 :(得分:0)
ko对于模型pubsub到表单很有用。要使用小部件,必须编写自定义绑定。 ko不直接支持AJAX。
backbone对于通过RESTful JSON进行模型持久化非常有用。它支持弱模型/视图同步:通过JS模板进行模型 - >视图。 view->模型通过widget处理程序必须编码。
ko&骨干不直接支持验证。 (我不计算bb的model.validate(),因为必须编写代码来验证每个属性。)它们没有数据类型概念。 (extjs模型有类型和验证。不幸的是,我发现extjs不可靠和不一致(数据绑定被集成到网格中但不是表单或属性表;类型信息必须输入到网格列和表单字段,尽管它是已出现在模型上)。)
即使混合使用ko,backbone和jquery验证,也需要编写很多代码。
我发现最有效的UI框架是JSF2,因为它处理所有这些。不幸的是,在实践中它存在问题。