一个轻量的ajax和页面生成框架
在一般中小企业的信息系统中,主要是基础数据的维护和数据的查询和报表.看了一些开源的程序,代码基本都是写
死的,如名称,字段.而且基本是一个功能一个页面.在小企业里有时客户是根本不知道自己需要什么,因此需求总是在不
停的变,如增加一个查询字段.
写死的代码维护起来非常费时,分析一下就会发现一般简单的mis程序页面主要是有由工具栏,form,数据表格组成.
页面的变化不大,主要是里面数据的变化.
于是有了下面的想法,主要分2步,第一步是页面的生成,主要是根据配置文件生成基本的页面结构,第二步是数据的
加载.图如下:
页面的生成如下图:
在第一步中 必须的配置文件有2个PageConfig.xml和Local.xml
PageConfig.xml为页面信息的配置,格式为
Code
<?xml version="1.0" encoding="utf-8"?>
<Pages>
<Page>
<!--页面的id,惟一-->
<PageId>Customers</PageId>
<!--页面的样式模板-->
<PageTemplate>SingleEntity.xml</PageTemplate>
<!--如果是页面的数据单表就是表名,是proc为空-->
<Table>Customers</Table>
<!--form里生成的字段,用于查询-->
<FormString>CustomerID,ContactName</FormString>
<!--添加和修改时需要的字段-->
<EditFormString>CustomerID,CompanyName,ContactName,ContactTitle,Address,City,Region,PostalCode,Country,Phone,Fax</EditFormString>
<Comment>Customers</Comment>
</Page>
<Page>
<PageId>CustOrderHist</PageId>
<PageTemplate>SingleEntity.xml</PageTemplate>
<FormString>CustomerID</FormString>
<!--当页面数据为proc时进行查询的proc-->
<Selectp>CustOrderHist</Selectp>
<Comment>CustOrderHist</Comment>
</Page>
</Pages>
local.xml为字段的中文化和类型信息.格式为:
Code
<?xml version="1.0" standalone="yes"?>
<Locals>
<Local>
<!--字段名 惟一,不唯一的话只取第一个-->
<Name>Region</Name>
<!--要显示的中文名-->
<LocalName>区域</LocalName>
<!--字段类型-->
<TypeName>varchar</TypeName>
<!--在添加和编辑时判断是否为空-->
<IsNull>Y</IsNull>
<!--控件的类型(txt,ddl(下拉框),ddlby(根据ddlcontrol表里生成的下拉框),date,checkbox)-->
<ControlType></ControlType>
<!--ControlType为ddl时用的表名,为ddlby时为识别id-->
<DsString>
</DsString>
<!--ddl时的显示字段-->
<FieldText>
</FieldText>
<!--ddl时的数据字段-->
<FieldValue>
</FieldValue>
<Comment>
</Comment>
</Local>
</Locals>
通过这2个配置文件,新页面或原有页面的字段更改都只需要更改配置文件,不需要更改程序.极大的方便了程序的维护.
第2步为数据的请求和更新
其中客户端的请求为:
上4个为必须,分别为页面id,操作,返回格式(xml或table),数据页数.然后是数据的参数.
数据的返回格式也是xml.参看学习zk的xml返回形式
demo下载 https://files.cnblogs.com/zhangfei814/Zer0.rar
现在也有部分问题,欢迎大家提供意见
现在页面和数据都没有缓存,主要是不知道数据变脏后的维护机制,如我的数据返回table分页都是重新查询,再取需要的部分,
实现缓存主要问题在于数据何时失效,以及数据在其他用户更改后变脏如何通知.看过企业库的,好像每个都需要自己重新写代
码,有没有可配置的,不需代码的开源组件或想法.
死的,如名称,字段.而且基本是一个功能一个页面.在小企业里有时客户是根本不知道自己需要什么,因此需求总是在不
停的变,如增加一个查询字段.
写死的代码维护起来非常费时,分析一下就会发现一般简单的mis程序页面主要是有由工具栏,form,数据表格组成.
页面的变化不大,主要是里面数据的变化.
于是有了下面的想法,主要分2步,第一步是页面的生成,主要是根据配置文件生成基本的页面结构,第二步是数据的
加载.图如下:
页面的生成如下图:
在第一步中 必须的配置文件有2个PageConfig.xml和Local.xml
PageConfig.xml为页面信息的配置,格式为
Code
<?xml version="1.0" encoding="utf-8"?>
<Pages>
<Page>
<!--页面的id,惟一-->
<PageId>Customers</PageId>
<!--页面的样式模板-->
<PageTemplate>SingleEntity.xml</PageTemplate>
<!--如果是页面的数据单表就是表名,是proc为空-->
<Table>Customers</Table>
<!--form里生成的字段,用于查询-->
<FormString>CustomerID,ContactName</FormString>
<!--添加和修改时需要的字段-->
<EditFormString>CustomerID,CompanyName,ContactName,ContactTitle,Address,City,Region,PostalCode,Country,Phone,Fax</EditFormString>
<Comment>Customers</Comment>
</Page>
<Page>
<PageId>CustOrderHist</PageId>
<PageTemplate>SingleEntity.xml</PageTemplate>
<FormString>CustomerID</FormString>
<!--当页面数据为proc时进行查询的proc-->
<Selectp>CustOrderHist</Selectp>
<Comment>CustOrderHist</Comment>
</Page>
</Pages>
local.xml为字段的中文化和类型信息.格式为:
Code
<?xml version="1.0" standalone="yes"?>
<Locals>
<Local>
<!--字段名 惟一,不唯一的话只取第一个-->
<Name>Region</Name>
<!--要显示的中文名-->
<LocalName>区域</LocalName>
<!--字段类型-->
<TypeName>varchar</TypeName>
<!--在添加和编辑时判断是否为空-->
<IsNull>Y</IsNull>
<!--控件的类型(txt,ddl(下拉框),ddlby(根据ddlcontrol表里生成的下拉框),date,checkbox)-->
<ControlType></ControlType>
<!--ControlType为ddl时用的表名,为ddlby时为识别id-->
<DsString>
</DsString>
<!--ddl时的显示字段-->
<FieldText>
</FieldText>
<!--ddl时的数据字段-->
<FieldValue>
</FieldValue>
<Comment>
</Comment>
</Local>
</Locals>
通过这2个配置文件,新页面或原有页面的字段更改都只需要更改配置文件,不需要更改程序.极大的方便了程序的维护.
第2步为数据的请求和更新
其中客户端的请求为:
![](https://www.cnblogs.com/images/cnblogs_com/zhangfei814/jsdatarequest.jpg)
上4个为必须,分别为页面id,操作,返回格式(xml或table),数据页数.然后是数据的参数.
数据的返回格式也是xml.参看学习zk的xml返回形式
demo下载 https://files.cnblogs.com/zhangfei814/Zer0.rar
现在也有部分问题,欢迎大家提供意见
现在页面和数据都没有缓存,主要是不知道数据变脏后的维护机制,如我的数据返回table分页都是重新查询,再取需要的部分,
实现缓存主要问题在于数据何时失效,以及数据在其他用户更改后变脏如何通知.看过企业库的,好像每个都需要自己重新写代
码,有没有可配置的,不需代码的开源组件或想法.