前几天帮人设计了一个手机版(做了屏幕适配,电脑使用也正常)的考题框架,供学习交流使用,今天把设计思路与技巧命整理一下。

一 效果演示:

1 登陆后台

题库管理

试卷管理

考生管理

科目管理

2 考生注册

考生登陆

进入考试界面

开始答题

交卷保存即可

二  开发思路:

充分利用baasdata数据绑定与data临时组件的存储特性,实现数据同步,绑定思想贯穿整个考题模块设计。

三 页面逻辑与代码实现:

1 数据库设计

数据库设计模型基础:

(注)数据模型,是整个开发过程中对数据相关业务的描述,根据开发经验,根据以上四种分类,可以快速创建所需的基本表。

考题模块基本表如下:

学生表,描述学生基本信息及登陆状态

题库表,把所有题目和答案放到一个题库中,类似于仓库,注意,我把题目,正确答案和4个选项放在一条记录中,前台会进行拼接处理。

学科表,用于将试题分类

试卷名称表

试题集合表,是一个中间表,将多个题抽出来组成试卷。一个科目里有多个试卷。多对多的表关联,需要中间表来进行角色操作,便于前端取值方便

答题卡表,答完题后,将答案提交到答案库中,便于后台分析整理。

(注意事项)1  表名前缀t_  ,没有特别的间义,只是为了在数据库中,上百张表,把当前工程用到的表放到一起,找起来方便

2 字段前缀t_ ,虽然也没有特别意义,但是非常重要,可以避免操作数据库时与数据库的保留字段冲突,导致保存失败。

2.登陆,注册,页面跳转,传参,后台管理

大家看我博文里的详细讲解,这里不做累述。

3.考题模块

开始答题对话框

加载试题

页面与组件设计

(注)1  题目,就是一个output,绑定到当前行

2  四个选项,利用radiogroup来实现,选项用前端data装载数据,然后用radiogroup来绑定

切换试题,用当前行切换,并装载选项到临时data中去,并在点击切换后,把正误span对像隐藏。

正误判断与显示,利用radiogroup的change事件,触发判断并根据判断结果,用js方法控制正误span元素的隐藏与显示

四  总结:

1 指导思想: 绑定技术,是所有设计核心。代替大量代码,高效,易于维护

2 开发顺序:数据库--页面逻辑--代码实现

数据库,是对项目中对像的数据描述,数据模型的设计优劣,直接关系到前后端开发的优劣。很多看完官方视频的同学感觉还是什么也设计不了,那么,看看数据库吧,因为你对数据模型还没有概念。

3 问题解决:

开发过程中会遇到各种各样的问题,向别人请教固然好,解决不了就是bug。这成了很多新手的直觉。任何框架都有bug,世上没有完美无缺的软件。有bug不可怕,可怕的是站在bug面前束手无策。正确思路是,换总思维和角度,看看问题的本质是什么,从数据库开始到页面再到逻辑,一环一环测试,看看是哪里的问题,是符号错误,标点缺失,还是传参失败。100次的测试,代表的是你对错误的认识。

4 测试方法:

1 alert:大量的临时测试,做一步,测一步,不要走远了再测。 不仅仅是输出字符,可以用来测试页面加载事件,data取值事件,可观察对像的作用域,event事件是否执行,等等。

2 谷歌开发工具: 大家都在喊开发文档少,没有教程,麻烦大家把开发工具打开,看看里面的方法,成片片的方法,事件,监听器,属性,对像,元素,对像是谁,怎么获取对像,如何得到值,事件发生在谁身上,触发了哪些命令。wex5没有提供的api,谷歌里面有这么多用不完的方法,哈哈,js才是万能之王啊。

5.给初学者的忠告:

作为一个初学者,给初学者的忠告:

1 wex5官方教程,必看

2 数据库,必学

3 js 必学

4  html5,css必学

这4种相关,缺一不可。如果你想做完一个小项目,哪怕是个演示性的小东东,开始努力吧。

wex5 教程 之 图文讲解 考题模块框架设计的更多相关文章

  1. wex5 教程 之 图文讲解 后台管理界面设计与技巧

    视频教程地址:http://v.youku.com/v_show/id_XMTgwOTAyMTkyMA==.html?from=s1.8-1-1.2&spm=a2h0k.8191407.0.0 ...

  2. wex5 教程 之 图文讲解 可观察对象的集群应用与绑定技术

    一 前言: wex5官方教程里,开篇即以一个input输入,output即时输出的例子,为我们展现了一个概念:可观察对象.在以后我的项目开发中,将大量运用可观察对象. 那么,问题来了: 1. 可观察对 ...

  3. wex5 教程 之 图文讲解 bind-css和bind-sytle的异同

    wex5作为网页开发利器,在前台UI数据交互设计中大量使用了绑定技术,即官方视频教学中也提到了KO,实质是数据绑定与追踪.在前台组件的属性中,为我们提供了两个重要的样式绑定属性,bind-css和bi ...

  4. wex5 教程之 图文讲解 文件上传attachmentSimple(1)

    视频教程地址:http://v.youku.com/v_show/id_XMTc4NDAyMTY4OA==.html 效果预览: 1 调用attchmentSimple组件,打开文件管理器,并选中,显 ...

  5. wex5 教程 之 图文讲解 全局可观察变量与登陆状态全局控制

    一 先说说,这两个概念是什么意思 全局可观察变量?没听说过,只听过全局变量,那你out了,因为我要充分发挥绑定技术来控制页面部局,组件的隐藏与显示,文字内容,样式改变.看我博文大家知道,我想用绑定技术 ...

  6. wex5 教程之 图文讲解 Cloudx5一键部署

    视频教程地址:http://v.youku.com/v_show/id_XMTc3OTExNTUwNA==.html 效果预览: 一键部署cloudx5三要领 1.数据源命名为x5 2.数据库命名为x ...

  7. wex5 教程 之 图文讲解 登陆,注册,页面跳转

    视频教程地址:http://v.youku.com/v_show/id_XMTc3OTE0Nzg0NA==.html 效果预览: 登陆页面   首页用windowContainer装载 注册页面 登陆 ...

  8. WiFi模块Demo(新手教程)图文详解模块使用教程

    本文出自APICloud官方论坛,感谢论坛版主 Mr.ZhouHeng 的分享. 第一步我们需要在开发控制台创建一个Native App应用以及添模块的准备工作: 按照下图步骤 输入完点创建完成之后 ...

  9. Android项目中的各个模块框架设计

    作为Android开发,现对项目开发中的各个模块搭建,梳理如下: Android UI框架,开发人员需要达到专家级 网络框架 浏览框架 图片加载框架 图片裁剪压缩工具类 客户端并发框架 线程池设计 ( ...

随机推荐

  1. js动态获取当前系统时间+js字符串转换为date日期对象

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  2. android几个实用的判定代码

    之前项目有几个判定代码很实用,特此做一个整理. 一.验证手机格式是否正确 //判断手机号码是否合理 private boolean judgePhoneNums(String phoneNums) { ...

  3. hdu Is It A Tree?

    判定给定的边序列是否过程一棵树.我用到的判定方法是:第一步:判定  边数是否等于顶点数-1  第二:判定是否只有一个根节点  .当然还要考虑是否为空树的情况. 但是代码交上去,好几遍都是Runtime ...

  4. C#面向对象整理

    一.里氏转换 (1)子类可以赋值给父类:如果有一个地方需要一个父类作为参数,我们可以给一个子类代替. (2)如果父类装的是子类对象,那么这个父类可以强转为子类对象. 二.值类型跟引用类型区别 1.在内 ...

  5. thinkphp框架3.2的cookie删除问题记录

    在使用框架删除cookie时,发现cookie(null)不起作用.后来查看官网相关信息,看到了讨论http://www.thinkphp.cn/bug/2602.html

  6. C/C++中的实参和形参

    今天突然看到一道关于形参和实参的题,我居然不求甚解.藐视过去在我的脑海里只有一个参数的概念,对于形参和实参的区别还真的不知道,作为学习了几年C++的人来说,真的深深感觉对不起自己对不起C++老师  T ...

  7. zju(8)串口通信实验

    1.实验目的 1.学习和掌握linux下串口的操作方法以及应用程序的编写: 二.实验内容 1.编写EduKit-IV实验箱Linux操作系统下串口的应用程序,运行时只需要将串口线的一端连接到开发板的c ...

  8. vpn分类[转]

    目前常用的几种移动拨号的VPN技术及优势和劣势1)                WEB SSL优点:1.使用简单:每个终端用户不需要安装客户端,使用起来方便,不需要维护终端用户,通过IE直接来访问. ...

  9. html第一天

    html为超文本标记语言, html下的内容不去分大小写: 标签必须要有开始和结束,<br>和<hr>特殊,在标签内结束<br/>,<hr/>:下划线 ...

  10. Android课程---首学开发

    新建一个Activity2类: package com.hanqi.test; import android.app.Activity; import android.os.Bundle; impor ...