【问题标题】:structuring js/ajax web app: separating structure and content in dynamic web form结构化 js/ajax web 应用程序:在动态 web 表单中分离结构和内容
【发布时间】:2012-09-21 19:01:15
【问题描述】:

我的问题与我正在处理的任何特定代码无关,但更普遍地与构建 Web 应用程序的最佳实践有关,或者更具体地说,与构建特定类型的我正在开发的 Web 应用程序。在这种情况下,应用程序当前不是根据任何范例(如 mvc)构建的,鉴于它的具体功能,我不知道这是好事还是坏事。

该应用程序允许用户填写动态生成的网络表单。在构建这些表单(主要使用 jQuery/AJAX)时,我必须从数据库中提取管理员生成的信息,这些信息指示表单的结构,同时还从数据库中提取用户生成的信息,该数据库使用内容填充表单的输入。我试图在整个代码中保持两者(结构和内容)在概念上分开(或至少彼此不同),但我意识到要按照我的意愿生成表单,它们必须是混合在一起。

例如,表单本身相对复杂,管理员可以在表单中创建不同的部分,从而允许用户为每个部分填写多个条目(因此,管理员可以创建一个名为“过去工作”的部分,允许用户使用相同的输入集合添加多个条目)。因此,为了创建表单,我从顶部开始,沿着层次结构向下工作:

  1. 使用管理员生成的结构创建表单;
  2. 使用管理员生成的结构创建部分;
  3. (在多条目部分的情况下)使用用户生成的内容创建条目;
  4. 使用管理员生成的结构创建输入;
  5. 使用用户生成的内容填充输入。

这是循环结构和循环内容之间的来回切换,我认为这有点草率,如果不是在概念上,至少在我实现它的方式上。在我看来,切换是必要的,但当谈到如何优雅地进行切换时,我感到很困惑。在这里我认为学习一两件事关于程序员通常如何构建这些类型的东西会有所帮助(我没有受过专业培训......)是否有一些现有的范式或一些普遍接受的方法可以帮助我保持所有的表单结构的组件与填充它们的用户生成内容分开,同时还有助于表单的层次结构?

谢谢。

【问题讨论】:

  • 您根本没有编写任何服务器端脚本吗?
  • 有对 php 脚本的 ajax 调用,它们基本上只是从数据库中提取信息并作为 JSON 对象返回。如果用户更改输入或重新排序条目,还有称为 ajax 的 php 脚本可以更新数据库。但是没有被ajax调用的php被调用......
  • 我只是觉得如果您在服务器端使用 OO 概念会容易得多。在我看来,Javascript 并不是真的要像这样使用。业务逻辑应该在后端,Javascript应该只用于演示。
  • 嗯,表格是非常动态的。当用户动态添加另一个条目时(或者,在管理方面,当管理员向表单添加新输入或部分时)也会使用许多最初创建表单 dom 的 JS 方法。

标签: javascript jquery ajax web-applications


【解决方案1】:

有很多 javascript 框架旨在解决您的问题。签出backbone.js 或knockout.js。两者都很棒。

【讨论】:

  • 在朋友的建议下,我开始使用 Backbone 进行开发,它提供了我一直在寻找的关注点分离。
猜你喜欢
  • 2016-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-24
相关资源
最近更新 更多