`
backspace
  • 浏览: 132831 次
文章分类
社区版块
存档分类
最新评论

easyUI与选择WebUI

 
阅读更多

easyUI与选择WebUI

作者:sagahu@163.com,2013-03-25,太原

关键字:easyUI, 选择WebUI

 

一、前言

当今网上有了很多的WebUI库,也有很多的网页开发使用这些成套控件而得到了良好的表现与极高的生产效率,正有着很多以前缺乏Web控件积累的程序员/团队/公司在选用并定制最合适自己的WebUI套件。本人使用easyUI为例,向大家介绍自己在选用WebUI库时的一些感受。

 

说到WebUI库,不得不提到这样一种程序结构:

 

如图,我们关注其中的UI前端与UI后端2个东西,它们是什么呢?以我的mySagasoft™ WebMIS技术架构为例,我给用户显示的网页都是.html网页,里面只有:html/css/javascript三样成分;而在Web服务器上有着无任何界面元素的.aspx页提供数据服务(也可用.ashx代替);当前者某个局部需要动态数据时,通过javascript/Ajax与后者通信,获得数据来更新哪个局部。这就是说,我把UI拆分成了2层,前面显示给用户的纯静态网页称为UI前端,后面提供数据服务的称为UI后端,中间用Ajax把2者联系起来。其实这种程序结构早在ASP、JSP时代就已经被大牛们总结出来了。这样有着显著的好处:这样便利了UI前端静态效果的设计与UI后端数据服务的独立实现,只需要程序员继续修改2者的通信。特别是对于很多苦恼于ASP.NET程序员与网页美工因服务端控件扯皮事件的软件公司带来了福音。

 

成套WebUI库技术与产品的出现,给了业内把UI前端与UI后端分层的程序结构提供了强大的支持。可以发现越来越多的公司或者团队正在或者已经选用了适合自己的套件库,逐渐远离微软服务端控件的封装,减少对许多所谓微软新技术的迷信。

二、纵览easyUI框架

(一)按钮与菜单

 

链接按钮,这是管理软件页面上使用频率最高的;有其它样式,可禁用/启用。

 

这3个依次是菜单、按钮菜单、下拉菜单。看起来很漂亮,但是如果浏览器禁用脚本的话,哪个效果是惨不忍睹,所以这就使得它们在使用时有局限性:绝不适合用在哪些企业网站首页上!其实在B/S型企业管理软件中我也不多使用。

(二)各种窗口

 

图示是一个消息提示框,它的消息提示框分为:普通信息、错误、警告、问询、确认、输入提示、进度、右下角显示等等,比较齐全。

 

其弹出模态对话框也很漂亮,控制也比较详细。普通窗口与对话框类似。

(三)GRID、TREE、TREEGRID3个一样不少

我们作数据呈现时,对于批量数据最常用、最需要的就是Grid、Tree、TreeGrid三样,微软开发工具多年来总是只提供很简陋的前2者。这个控件包3者都提供了,还都比较好用。

 

这个Grid控件可用鼠标来调整列宽,下面与右面的滚动条也是ASP.NET的标准GridView没有的。个人觉得这是当今B/S企业管理软件GRID必须具有的!

 

显然这个Tree比ASP.NET的标准好看,也支持单选与复选控制,如果还觉得不好用,可以用国人的自豪——zTree——代替了它。

 

太多的项目中需要TREEGRID,所以尽量避免单独找一个与其它控件不配套的。

还有个PropertyGrid,用的不多,也不太好用,不说它了。

 

对于这一套控件包里的GRID与TREEGRID,在数据编辑时最常使用方式是:选择一条记录,弹出这条记录的对话框或者跳转到这条记录的边界页面去操作,完了就单独更新这条记录。这种方式很简单,这套控件支持的很好。另一种方式是直接在控件里编辑多条记录、多个单元格的数据,然后批量提交。这种方式比前一种复杂多了,这套控件也支持,但是本人并没有去深入的体验,所以不能对这方面下什么结论。

(四)窗口上的小控件也很齐全

这套控件包支持非常方便的拖动、改变尺寸、进度条、搜索框、分页、动态加载等等,还有灵活的日期时间选择框,真是精致、齐全、匠心独具!

(五)齐全的组合下拉框

  

在微软的开发工具里历来没有这些下拉框控件:ComboGrid、ComboTree、ComboTreeGrid等等。但是实际开发中这些都需要,这套控件包就提供了前2者,好像能配置出第3种,记不清了。但是没有这些的控件包你必须另外再配!

(六)不错的布局实现

 

这是其缺省的主界面布局,特别适合B/S型企业管理软件。它把页面分成上、下、左、右、中5块,可选自己的布局方式。其实每一区域都是一个相对独立的“面板”,支持鼠标拖动调整尺寸与隐藏/显示。支持在“面板”内布局。支持选项卡式布局,虽然这样很费资源。

 

套件包里还提供了一个很不错的手风琴式菜单控件。

 

从图上可以看出,这个“面板”支持很多详细的控制,如隐藏/显示/最大化/最小化等,非常具有实用性。

 

(七)可选的Form元素

 

自从有了Ajax,动态页面编程时对Form的以来就逐渐弱化,甚至可以不用Form。虽然如此,这套控件包还是提供了这方面的一些功能。

 

本人就不太使用Form,这一方面我主要使用其数据验证,更确切点说,是使用其友好的数据不合法提示!

(八)HTTP请求与数据绑定

当前大多数JQuery标准控件具有通过url直接请求后端服务的机制,这样可以在URL后面附带上少量简单数据。而这套控件在此基础上支持定义post/get方式,支持请求中附带参数。我认为很有必要支持带参数的POST请求,这样才能附带较大数据量,也提高了安全性。

 

大多数JQuery标准控件通过url请求返回的json数据而直接绑定到了控件上。这种情况下,后端数据格式与前端控件要求的数据格式之间的转换,只能是放在后端,理论上会增加后端的负载。但实际应用中,难免需要把数据格式转换工作放在客户端浏览器javascript里,就是说不希望直接绑定,是后端数据反馈回本地进行处理后再绑定到控件上。例如,后端返回bool值1/0要在前端用checkbox显示,或者弥补一些服务端对象/Json转换在日期时间类型上的不足,或者就是为了把计算负载转移到客户端等情况。总结就是数据返回与绑定之间允许再插入干预操作。这套控件在这一点上就做的比较好。例如DataGrid控件除了url/参数直接请求/绑定方式,还有后期绑定数据的方法,参看下面的代码:

 

function loadPage(pageNumber, pageSize) {

addCookie("RolePageSize", pageSize, 7);

var where = getWhere();

var url = "../MisBaseV2_Behind/RoleManager.aspx";

var data = { "ReqKey": "GetListPage", "pageSize": pageSize, "pageIndex": pageNumber,

"where": where, "orderBy": "Id asc"

};

$.ajax({

type: "POST", url: url, data: data, dataType: "json",

success: function (result) {

if (!handleMyAjaxResult(result))

return;

var chk0 = "<input type='checkbox' disabled='disabled' />";

var chk1 = "<input type='checkbox' disabled='disabled' checked='checked' />";

$.each(result.Data.rows, function (i, roleData) {

roleData.IsAdmin = roleData.IsAdmin > 0 ? chk1 : chk0;

roleData.IsSystemic = roleData.IsSystemic > 0 ? chk1 : chk0;

});

$("#table1").datagrid("loadData", result.Data);

}

});

}

上面代码里,把请求返回的数据处理后,再绑定给table1。这显然不是通过url请求/响应的直接绑定。

(九)支持切换与定制Theme

这个套件缺省有3套Theme,虽然支持定制Theme与动态切换,笔者现在还没有学会。如果与其它WebUI控件混用,会非常需要统一的Theme,所以这一点就是非常必要了。所以我说,如果公司/团队选择它来做自己的产品架构时,一定要追求这一点。

(十)比较成熟

我实际使用过,觉得这套控件比其它同类产品要成熟、可靠些。

 

与LigerUI相比,后者好像是模仿前者,而且网上反映BUG多多,更糟的是原作者早停止更新了,所以后者的应用只能停留于一些jQuery高手。easyUI的官网一直在持续更新。

 

看到一套基于ExtJS的开源套件——FineUI,没亲自用过。只是有这样的顾虑:听说ExtJS是收费的;听说ExtJS的性能不如jQuery;当前JS框架排名最靠前的是jQuery,应用最广,而ExtJS则次一些,其投资价值小很多吧?

 

(十一)郁闷的代码半开源

这套控件包最大的遗憾就是:它的代码是半开源的,对于实际使用时需要做必要的修改是非常困难的,这就是其最大的弊病。也许有经济实力的团队/公司购买源代码可以解决这个问题。

 

第二个弱点就是它们主要适于非禁用JS脚本的场合,特别是慎用那些在禁用JS脚本时界面会变的很悲惨的控件。

三、总结WebUI选择标准

我总结选择WebUI包的标准,大概如下:

 

(1)开源代码,最好免费:开源才能在必要的情况下方便地修改,这一点是非常必要的。如果不开源的话,那就非常需要购买到其源代码,并且有能力作必要的修改。不免费资源,那是少数的有钱人的选择。

 

(2)功能齐全,并且方便与其它外加控件不排斥:一套控件包,本身包含的功能需要比较齐全,在实际应用中基本够用,很少需要再找其它插件。如果确实需要用到了其它另外的插件,也不应该发生技术排斥问题。

 

(3)必要的支持POST请求方式:需要具有HTTP请求的控件,必须支持可附带参数的POST请求方式,就是为了满足二点:一是发送较大数据量,二是数据安全要求。

 

(4)数据绑定必须灵活,可以处理后再绑定:绝对不能指望后端反馈回的数据格式在任何情况下都满足前端控件要求,必须允许在数据返回与绑定之间插入必要的处理。

 

(5)可修改皮肤样式,支持动态切换Theme:只有这样才能为应用系统实现统一的界面风格,实现本WebUI包与可能需要的外扩插件界面风格的统一。

 

(6)足够成熟、稳定:不应该在实际应用中发现BUG多多,给项目工作增加太多的负载。

四、如何执行WebUI选择工作

软件公司/团队需要构建自己的组建库,需要建设、选择自己的WebUI库,为此我阐述了自己的WebUI选择标准,接下来就需要考虑如何具体的安排、部署执行这项工作,并且规划好达标的标准。

 

如果是公司的话,那人手多啊。第一步工作:可以安排1~3个熟悉javascript、jQuery、前端设计的技术老手,大约使用1-2周的时间(象easyUI需要的时间就这么多),参考网上资料,编写一本技术手册。当然,技术手册就是从纯技术角度去说明问题,而且要与通用技术资料有所却别,就是要注重标准使用中比较关键的地方,或者缺陷,或者适用场合。第二步工作是:结合自己公司的产品系统架构,试验、总结在界面层应用的规律,编写界面模版与代码模版。第三步工作是:把在产品系统架构中使用的方法,就是前面总结的界面模版与代码模版,编写进本公司产品架构教学手册中去。显然后面第二、三步工作比第一步更加趋近实际应用,也更加费劲了!

 

如果是个人的话,那么只能先做读书笔记,特别注意记录关键点、缺陷与使用场合;下一步试验、总结自己的界面模版与代码模版了。

五、一些参考资源

easyUI官网:http://www.jeasyui.com/

http://www.easyui.org.cn/

FineUI:http://fineui.com/,一套基于ExtJS的开源WebUI套件。

国产树控件:http://www.ztree.me/v3/main.php#_zTreeInfo

中国jQuery插件网:

开源中国社区jQuery:http://www.oschina.net/p/jquerypp

慧都控件网:http://www.evget.com/

 

分享到:
评论
1 楼 奇葩的奇葩 2013-11-25  
WebUI最新版免费下载

相关推荐

    JQuery,easyUI,ligerUI中文.chm

    JQuery,easyUI,ligerUI中文.chm,

    用JS-EasyUi做的web前端

    功能强大可扩展性强的WEB前端,效果如通过EXT,但开发更加简单,更加灵活,但须了解JS的基础知识以及DOM

    WebUI.zip_bootstrap easyui_easyui框架_miniui_前端框架

    本文选取了 jQuery 、jQuery UI、jQuery EasyUI、Sencha ExtJS、MiniUI、Bootstrap等6个国内外前端开发框架进行初步的横向比较

    web前端框架-easyui

    easyui help you build your web page easily!... jQuery EasyUI 框架帮助你轻松建立站点。easyui是一个基于jquery的集成了各种用户界面的插件。

    easyui实现的Activiti工作流引擎web版流程设计器

    easyui实现的Activiti工作流引擎web版流程设计器 跨浏览器流程设计器 打开文件 processDesigner\wf\designer\index.html

    EasyUI1.3.6 离线文档

    Easyui1.3.6 离线文档 ,摘自easyui官方文档

    easyUI案例

    jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面。开发者不需要编写复杂的javascript,也不需要对css样式有深入的了解,开发者需要了解...

    jquery-easyui-1.2.6

    jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面。开发者不需要编写复杂的javascript,也不需要对css样式有深入的了解,开发者需要了解...

    easyUI完整视屏教程

    学会使用jQuery EasyUI搭建UI界面 适用人群 有jQuery基础的同学,想学习UI的同学 课程简介 课程目标: 学习jQuery EasyUI可以实现Web系统的后台前端界面开发以及企业级项目前端界面开发。 适合对象: 适合希望能够...

    Jqueryeasyui使用说明

    jQuery EasyUI是一组基于jQuery的UI插件集合体,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面。开发者不需要编写复杂的javascript,也不需要对c 资源太大,传百度网盘了,...

    jquery-easyui资料和文档

    jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面。

    uimaker与Easyui.7z

    UImaker与EasyUI多套管理系统后台模板,含相关皮肤,辅助Web开发/设计后台管理系统UI设计参考资料

    最新EasyUI扁平化

    Query EasyUI是一组基于jQuery的UI插件集合,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面。

    easyui信息考核系统后台界面源码

    easyui信息考核系统后台界面源码,简洁美观,很适合项目开发

    ASP.NET WebAPI+mvc4.0+EasyUI快速开发框架+通用权限管理系统源码

    5、采用Knockout,,提供了一个数据模型与用户UI界面进行关联的高层次方式(采用行为驱动开发) 6、数据访问层采用强大的Fluentdata完美地支持多数据库操作 7、封装了一大部分比较实用的控件和组件,如自动完成控件...

    通用Easyui开发框架源码(For Asp.NET)

    07 UI 即User Interface,该层作为数据输入和展示的界面,是与用户交互的有效途径,所以它起着至关重要的作用。往往给人第一印象的就是UI层,在设计的时候也要根据不同的技术或者不同的要求进行斟酌。通常可以把UI...

    easyui1.5.2

    jQuery EasyUI是一组基于jQuery的UI插件集合体,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面。开发者不需要编写复杂的javascript,也不需要对css样式有深入的了解,开发者需要...

    Web mvc4.0 EasyUI 最新 权限管理系统源码.zip

    5、采用Knockout,,提供了一个数据模型与用户UI界面进行关联的高层次方式(采用行为驱动开发) 6、数据访问层采用强大的Fluentdata完美地支持多数据库操作 7、封装了一大部分比较实用的控件和组件,如自动完成...

    asp.net+Web+mvc4.0 EasyUI 最新 权限管理系统源码教程

    Zephyr.Net 企业版是基于Asp.Net MVC4.0 + WebAPI + Knockout 技术,采用EasyUI为前台开发展示UI,Knockout主要负责前端的逻辑交互,再结合jQuery Ajax进行提交数据请求。 二、框架特色 1、基于 ASP.NET MVC4.0 + ...

    easy ui datagrid项目完整源代码

    jquery easy ui datagrid完整项目源代码,非常值得学习

Global site tag (gtag.js) - Google Analytics