jQuery MiniUI

 找回密码
 立即注册
查看: 22581|回复: 1
打印 上一主题 下一主题

jQuery MiniUI开发系列之:UI和数据分离   [复制链接]

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
楼主
发表于 2012-3-16 15:39:18 |只看该作者 |倒序浏览
使用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)易维护、易升级。只需要修改界面,不需要修改后台代码,就可以让系统焕然一新。



Rank: 3Rank: 3

沙发
发表于 2012-4-9 11:07:40 |只看该作者
很好

Archiver|普加软件

GMT+8, 2024-11-25 19:11 , Processed in 1.043652 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部