【发布时间】:2012-11-22 02:17:21
【问题描述】:
我正在开发一个 Web 应用程序,它允许用户编辑页面上的元素(就像您可以使用 Adobe InDesign 一样)。可以拖动、选择对象,并为用户提供一个侧边栏,其中包含可以修改的对象的所有属性。
数据存储在服务器上的数据库中。我正在使用 Django 和 tastypie 来为数据库中的数据提供一个简单的 REST 接口。
基本上数据的结构如下:
- 文档
- 页面
- 页面对象
- 页面
我用 jQuery 和 jQueryUI 做了一些测试,它们提供了允许对象选择、拖放等所需的大部分代码。一切都很好。
现在我正在考虑最好的方法是存储/管理/提取/更新页面上所有这些对象的信息。我可以手动完成所有操作,并使用jQuery.ajax() 并将信息存储在数组、字典中并将它们链接到 DOM 元素。但是,我觉得有相当多的重新发明轮子和涉及的样板代码是可以避免的。
所以我在网上搜索并发现了 Backbone.js。它让我想起了 Django 的 ORM,并且似乎让管理所有数据变得更简单。据我了解 Backbone.js 的想法,它允许我创建一个类似于在服务器上的模型中定义的对象类,并使用它来存储有关对象的所有信息。
是否适合将 Backbone.js 用于此任务?我查看了它的文档,还看到它支持使用 REST/Ajax 进行同步。
【问题讨论】:
-
太好了,你打算开源它吗?我正在起草一个类似的项目。我在 UI 中使用 knockout.js,对 DND 使用 html5sortable(我发现在嵌套小部件中拖放有点困难)和自定义 JSON 格式。我不确定backbone.js 是否对我们有帮助见。
-
@okm:不,这是商业项目,所以我不能开源。
-
我明白了.. 继续努力,祝你好运 =)
标签: jquery ajax django backbone.js django-models