4

我有一个相对简单的网络应用程序,它可以用作我目前正在修改的信息亭。我最初的目标只是让它工作,但现在我正在尝试实施更优雅的方法。

基本背景信息:

  • 内容——所有内容都通过 php 来自数据库——要么响应 ajax 调用,要么直接用 php 回显内容(大部分内容)。这部分我已经修改过,虽然仍然不完美,但相当有效/灵活。
  • 信息亭的作用 - 我们的客户使用信息亭进行一项或多项调查。一旦表单通过验证,就会提交数据。如果这是最后一次调查,则会话结束。如果有更多调查,他们会继续进行调查。

问题: 我有一堆控制信息亭行为的jQuery 事件处理程序。基本上,行为包括显示/隐藏 DOM 中已经存在的元素,具体取决于信息亭所处的状态。

  • 切换指令
  • 切换注销屏幕(提前结束调查)
  • 转到调查的下一个/上一个问题
  • 显示自动注销警告的空闲计时器(再次只是显示/隐藏不是警报)
  • 如果回答不足,则显示错过的问题
  • 如果通过简单验证,则提交表单

我添加的调查越多,我遇到的特殊情况就越多,jQuery 似乎就越混乱。仅由单选按钮组成的调查很容易(尽管代码仍然不够优雅),但我似乎将那些有问题管道(依赖于其他问题的问题)和文本回复的调查视为特殊情况,我希望可以对 jQuery 采取更加模块化/OOP 的方法。

我考虑过...

  • 原型
  • jQuery UI 小部件工厂
  • 编写我自己的 jQuery 插件
  • 编写我自己的 javascript 类
  • 淘汰赛.js
  • 继续当前的 jQuery 方法,只是清理它

提前感谢您提供专业知识并根据我的项目背景为我指明正确的方向。

4

1 回答 1

0

Backbone.js 将是解决这个问题的绝佳方式。这种方法将通过...解决我的问题

  • 将模型与视图分离
  • 利用继承,我可以创建具有标准行为的基类和子类来实现某些调查元素的特殊行为
  • Backbone.js 非常轻量级并且“和其他人一起玩得很好”
于 2012-06-22T19:06:24.117 回答