2

我们在网站上使用的 JavaScript 代码库的结构非常好(如果有人感兴趣,请在此处列出)。

我一直在考虑将backbone.js(或针对某些功能的knockout.js)集成到我们的代码中——但经过仔细考虑,我认为我不太关心数据绑定(我的应用程序不做密集型客户端) <->服务器数据交换,它更偏向于服务器->客户端->js数据管道),所以我真的不在乎我是否没有动态数据绑定和同步。

由于我对这些库不是很熟悉,我担心通过选择不使用这些库,我会错过一些其他非常有用的功能。我是吗?

4

2 回答 2

4

如果我正在构建一个完整的单页网络应用程序,我个人会使用主干。如果您的网站主要是 HTML,但使用 JS 来实现一些次要的附加功能,我不会担心。Backbone 擅长处理客户端数据模型并将更改绑定到这些模型以查看更新。

就个人而言,我使用过敲除,发现它对 HTML 中的数据绑定的依赖令人困惑。这对我来说效果不佳。构建部分动态的网站可能更友好一些,因为很多逻辑都直接进入 html 视图层。您可能想收听最近的播客采访淘汰赛的创建者,因为它可能会阐明一些事情。http://javascriptjabber.com/

就我而言,在构建一个包含一些动态元素的大型网站时,我一直坚持使用一些全局 jQuery 插件和页面特定 JS 的模式。它适用于对特定页面的简单添加。

我不知道这个问题是否非常具体,所以这是一个通用的答案:)

于 2012-05-14T21:16:28.513 回答
1

我首先要指出,虽然声明性数据绑定是 KnockoutJS 的关键特性,但它不是核心骨干框架的一部分。确实存在多个插件,例如(Rivets.jsOrchestrator),它们在 Backbone JS 中提供此类功能。

现在来到您问题的主要方面 - 就数据绑定以外的优势而言,KnockoutJS 没有太多可提供的东西。但是,即使交互式数据绑定不是主要问题,您也绝对应该考虑使用 BackboneJS。原因是 Backbone 捆绑了客户端路由系统和一种简洁但最小的方法来管理从服务器获取的 javascript 数据。

正如您所提到的,您的应用程序是数据驱动的,您在客户端中获取的数据可能不是一次全部获取,而是增量更新。在这种情况下,拥有可观察的模型和集合可能会帮助您很好地管理您的应用内数据依赖关系(以及保持任何用于可视化数据同步的小部件。)

于 2012-09-24T20:54:59.453 回答