冬Blog

醉心技术、醉心生活
posts - 109, comments - 955, trackbacks - 32, articles - 0
  博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

使用ExtJs开发MIS系统(系列文章)

Posted on 2008-12-24 18:13 冬冬 阅读(...) 评论(...) 编辑 收藏

本系列文章的目标是讲述ExtJs开发MIS的一些设计思路和技巧,本文假定你已经了解ExtJs,熟悉ExtJs中的主要类且有较强的Js编程能力,缺乏的仅仅是应用的技巧。关于ExtJs的基本内容,请参阅ExtJs官方网站、Google和园里的相关文章。文中的一些技巧和方法不限于 ExtJs,在很多基于富客户端框架——例如SilverLight、Flex等的系统设计中,都可以使用。

本系列主要包括以下内容:

(1)基于ExtJs的MIS构架设计。
该篇介绍了系统总体架构,包含客户端和服务器端的交互方式和客户端构架。

(2)Js的动态加载。
介绍了如何动态的加载Js,避免不必要的网路开销和浏览器渲染,提升系统性能,改善用户体验。

(3)使用数据库保存客户端状态。
我们都知道,Vs.Net这样的工具每次打开时都会记住我们上次关闭时的状态:各个窗口的位置、大小;工具栏状态;自定义菜单项等。这无疑是一个使用的功能。ExtJs也包含提供了状态保存机制,其主要的控件:GirdPanel,FormPanel等,都提供了状态保存的功能。我们需要的仅仅是为其提供适当的Provider。

(4)轮询。
众所周知,Http是无状态的,每次请求结束后,客户端都会和服务器端断开连接。请求总是从客户端发起的,除非客户端发起请求,否则服务器端没有办法主动地向客户端传递任何数据。然而对于MIS,常常需要从服务器端推送数据给客户端,例如当用户提交了一个新的申请后,需要管理员去审批。解决办法就是客户端 “锲而不舍”的询问服务器,是否有新的事情要做,也就是所谓轮询技术。

(5)使用Action抽象客户端操作。
在客户端系统中,或者说在任何系统中,同样的操作是可以通过不同的方式激发的,比如说我们使用的浏览器,刷新当前页面可以点击刷新按钮,可以在右键菜单中选择刷新,还可以按F5快捷键。但不管操作方式如何变化,操作本身是不变的,所以我们可以把这些操作抽象出来。

(6)客户端MVC。
MVC结构大家都很熟悉,利用ExtJs提供的数据和显示控件,很容易实现基于Js的客户端MVC。

(7)ExtJs性能浅析
在使用ExtJs过程中,性能一直是一个比较头疼的问题,从用户的角度来看,就一个字:慢。从技术的角度来说,这个“慢”字可以分为两种,加载“慢”和渲染“慢”。

(8)示例代码下载
演示项目,包括文中提到的所有代码及部分后台程序。