使用MiniUI需要注意:UI和数据是分离的。

传统的WEB开发,开发者经常将数据库操作、服务端业务、HTML标签写在一个页面内。
这样会造成开发的混乱,并且难以维护和升级。

使用MiniUI开发的时候,开发者通常会做两种页面:
1)数据页面:dataservice.jsp。(也可以是dataservice.aspx)
2)界面页面

数据页面用来提供json。它通过request获取提交的信息,进行逻辑判断后,进行相关服务端操作,通常是在数据库查询,或者增加、修改、删除数据。在最后,它把要返回的数据内容,做成一个JSON字符串,通过response返回。
以下给出一段伪代码:

  1. //查询条件
  2. string key = Request["key"];
  3. ......
  4. //数据库操作
  5. Hashtable result = new TestDB().SearchEmployees(key, pageIndex, pageSize, sortField, sortOrder);
  6. //序列化成JSON
  7. String json = PluSoft.Utils.JSON.Encode(result);
  8. //返回JSON
  9. Response.Write(json);

复制代码

界面页面是最终用户看到、操作的页面,至关重要。
开发者此时可以不用理会数据服务,专心开发界面。比如一个CRUD操作的表格、复杂的表单、弹出面板等。
当界面呈现完成后,进行数据服务的交互处理。
通常,表格的查询、分页、排序功能占开发的大部分时间。
MiniUI的DataGrid极大的简化了这一环节:

  1. grid.setUrl("dataservice.jsp?method=GetEmployees");
  2. grid.load({key: "")}; //查询
  3. grid.gotoPage(0, 20); //分页
  4. grid.sortBy("price", "desc"); //排序

复制代码

在其他数据操作场合,使用jQuery的ajax实现数据交互,比如实现一个删除记录的ajax方法:

  1. $.ajax({
  2. url: "dataservice.aspx?method=RemoveEmployees&id=" + row.id,
  3. success: function (text) {
  4. grid.reload();
  5. },
  6. error: function () {
  7. }
  8. });

复制代码

这种开发模式带来的好处是:
1)专注。后台开发者专注于数据库、服务端、业务设计;前端开发可以专注界面细节。
2)复用。数据页面dataservice.jsp,可以被多个界面页面所调用,而只需要开发一次。
3)可控。使用firebug、httpwatch等工具,是界面传递的参数不对,还是后台获取的数据错误,一目了然。
4)上手迅速、低成本、高可靠性。可以让一个新手使用MiniUI开发界面,让有经验的人开发最重要的后台。
5)易维护、易升级。只需要修改界面,不需要修改后台代码,就可以让系统焕然一新。

jQuery MiniUI开发系列之:UI和数据分离的更多相关文章

  1. jQuery MiniUI开发系列之:数据验证

    在开发应用系统界面时,往往需要进行很多.复杂的数据验证,当填写的数据符合规定,才能提交保存. jQuery MiniUI提供了比较完美的表单数据验证和错误显示的方式. 常见的表单控件,都有一个验证事件 ...

  2. jQuery MiniUI开发系列之:安装部署

    jQuery MiniUI是一套纯Javascript的WebUI控件库,它由几十个Javascript控件组成,是不依赖服务端和数据库的. 下载jQuery MiniUI,解压缩后,开发者可以直接在 ...

  3. jQuery MiniUI开发系列之:创建组件对象

    jQuery MiniUI可以使用Javascript和Html两种方式来创建对象. 1)Javascript创建对象 使用JavaScript创建对象,是最基本的方式,有如下几个要点: 1)使用ne ...

  4. jQuery MiniUI开发系列之:使用API文档

    jQuery MiniUI在组件设计上,是简约.独立的,没有复杂的继承体系. 比如使用DataGrid,可以在api文档的datagrid部分,查找到datagrid的所有属性.方法.事件,而无需关注 ...

  5. jQuery MiniUI开发系列之:Ajax处理超时、服务端错误

    MiniUI所有组件的ajax交互,均使用标准.成熟的jQuery.ajax. 依赖于jquery ajax组件的完善性,我们可以拦截住每一次ajax请求处理. 比如,拦截ajax返回数据前,判断返回 ...

  6. jQuery MiniUI开发系列之:HTML标签配置

    全部使用Javascript写一个界面,是一件很困难的事. 1)要求有较高的Javascript编程能力. 2)会造成“代码树”问题.一级又一级子"children",需要&quo ...

  7. jQuery MiniUI 开发指南+API组件参考手册

    jQuery MiniUI 开发指南 本文档将逐步的讲解jQuery MiniUI的方方面面,从此您将踏上jQuery MiniUI的深入探索之旅.                 1.Hello M ...

  8. thinkphp+Jquery MiniUI 开发 管理系统

    Jquery Miniui JS 兼容IE6+的浏览器,非常适合在企业内部使用. 管理系统等都非常方便. 在企业内部正在使用的是前期asp.net +fineui实现的管理系统.经过了几年的实践检验. ...

  9. UI与数据分离 与 UI的演进

    解藕的好处:UI内部模块能够灵活的变化. MVC或者三层架构着重强调了数据.业务逻辑和UI的分离. (MVC中的C只是UI和业务逻辑模块间的一个中转组件,理论上应该是个轻模块.) 以前的关注的解藕技术 ...

随机推荐

  1. 使用第三方框架vapor和swift 搭建本地服务器

    在网上看到一篇教程,使用vapor搭建服务端,自己记录下来备忘本文主要记录以下几点 1.配置好Vapor 2.用Swift写GET,POST方法,返回JSON数据 3.配置本地服务器,编译运行在浏览器 ...

  2. JavaScript 获取数组中最大值、最小值

    笨方法 Array.prototype.max = function() { var max = this[0]; var len = this.length; for (var i = 1; i & ...

  3. JavaScript模块化编程

    为什么模块化很重要?因为有了模块,我们就可以更方便的使用别人的代码,想要什么功能,就加载什么模块. 万事都有规矩,就是规范化! 目前,通行的Javascript模块规范有两种: CommonJS和AM ...

  4. WebView 载入本地的html

    1.可以是用loadData,这种方法需要先将html文件读取出来,以字符串传入loadData,可以展示页面,但是不会引用css.js等文件. 2.使用loadUrl,不过需要注意,这里因为是使用本 ...

  5. android aidl 进程间通信需要注意的地方(android.os.TransactionTooLargeException)

    转自:http://blog.sina.com.cn/s/blog_4e1e357d0102wau9.html 1.bus工程实现通过service实现aidl实体类 2.actor工程通过发起bin ...

  6. php session的理解与使用

    session学习参考链接:1.http://www.w3cschool.cn/php_sessions.html:2.http://php.net/manual/zh/book.session.ph ...

  7. ftplib模块

    Python中的ftplib模块 Python中默认安装的ftplib模块定义了FTP类,其中函数有限,可用来实现简单的ftp客户端,用于上传或下载文件 FTP的工作流程及基本操作可参考协议RFC95 ...

  8. 经验分享:Linux 双网卡SNAT和DNAT映射本地端口出外网

    A 机器 网卡1  公网IP网卡2  内网 B 机器网卡1 内网 如果想把公网端口P1 映射为内网B机器端口P2 iptables -t nat -A PREROUTING -d [A公网地址] -p ...

  9. apriori推荐算法

    大数据时代开始流行推荐算法,所以作者写了一篇教程来介绍apriori推荐算法. 推荐算法大致分为: 基于物品和用户本身 基于关联规则 基于模型的推荐 基于物品和用户本身 基于物品和用户本身的,这种推荐 ...

  10. 打造完美的xml技术解决方案(dom4j/xstream)

    转: XML 技术是随着 Java 的发展而发展起来的.在 XML 出现之前对于简单的数据格式通常是存储在 ini 配置文件等文本文件中,复杂的格式则采用自定义的文件格式,因此对于每种文件格式都要有专 ...