Backbone.js and CakePHP

Backbone.js and CakePHP

本文关键字:CakePHP and js Backbone      更新时间:2023-09-26

我有兴趣在我们的应用程序(构建在CakePHP框架上)中为一些更重复的页面内CRUD结构实现Backbone.js。我一直在努力掌握Backbone,同时弄清楚它如何与Cake结合使用,当涉及到将双方的职责分开时,我有点不知所措。

我是不是想把一些不需要的东西塞进我的网站?这种堆栈结构有优先权吗?在这一点上我洗耳恭听。

我现在实际上正在处理同样的情况(尽管使用Python/Flask,但相同的概念应该适用于任何服务器端语言)。以下是我的应用程序中页面的工作流程。只是注意,我不遵循单页申请格式;在我的应用程序中,每个主要页面都是完全重新加载的。

  1. 用户请求一个页面,比如公司列表、/公司/列表/
  2. 服务器执行路由,加载正确的控制器
  3. 控制器从DB加载前X家公司
  4. 公司编码为JSON
  5. 加载其他元数据(如公司总数)并将其转换为JSON
  6. 加载列表页面模板,并将JSON弹出到<脚本>标记。请注意,这里我不填写列表表或任何类似的内容,我让Backbone来完成所有这些。我在这里填写JSON,这样客户端就不必对最初的一组公司进行第二次请求
  7. 列表页面将发送到客户端。服务器目前已完成
  8. 客户端拥有启动所需的所有数据,所以我获取JSON并将其传递给我的Backbone。查看列表页面
  9. 该视图为模型创建一个集合,并管理一组表示列表中条目的子视图
  10. 任何其他处理/视图创建都会发生,例如创建页面、上一个/下一个按钮等
  11. 如果用户点击公司的下一个页面,我会向服务器(/companys/listing/page/1或其他什么)发出AJAX查询,服务器会返回一个带有新模型集的新JSON字符串
  12. 将新模型集发送到我的Backbone。查看它会刷新所有内容

实际上,服务器只用于实际的数据加载和模板的初始发送。我喜欢这个,因为它可以让我轻松地连接新的前端(比如iPad应用程序之类的)。

对于一种形式,用非常宽泛的笔触,我做了这样的事情:

  1. 用户请求表单,/companys/edit/1
  2. 服务器进行权限检查,加载条目,向客户端发送模板/JSON。服务器没有用数据填写表单
  3. 客户端使用JSON填写表单
  4. 客户修改表单,点击提交
  5. 他们的所有更改都应用于模型,模型被转换为JSON并使用AJAX发送到服务器
  6. 服务器进行验证并向客户端发送错误消息(JSON),或者更新数据库并发送成功消息

再说一遍,这些都是我如何做到的。一般来说,我使用服务器从数据库中获取数据,进行服务器端验证(不能信任客户端,呵呵),并更新数据库。

如果你有一些具体的问题,我很乐意分享我到目前为止学到的东西。