一种Web UI 的代码设计思路

来源:互联网 发布:时间轴 demo 源码 编辑:程序博客网 时间:2024/05/01 03:43

相信 UI开发对 编程人员来说有时非常的头疼;


作为一个 Asp.Net 程序员,前台网页不允许使用 服务器控件,这是共识;

但是对于网站后台,很多公司则没有这个要求,因为网站后台因为使用的人数较少,所以对效率和服务器造成的负荷都可以不加考虑;


对于网站后台的页面和逻辑的编码,有时因为得不到美工的支持,所以会非常头疼:好不容易写完了 后台逻辑代码,现在还要自己拖控件,自己写绑定,这时非常糟糕的事情;


本文章仅写给自己,提出一种思想,有时间有自己 实现一哈:(不代表任何权威)


1.  统一继承 IAjaxControl 接口,实现一下属性函数:
TriggerMsg 触发消息:指定的消息 将会触发 当前控件的刷新行为;
RefreshType 刷新类型:当该控件刷新时,将会被刷新类型枚举:AjaxHtml,AjaxValue,AjaxJson,Html,Value,Json
ChangedMsg 当控件值发生变化时,将会发送的 消息,该消息将被作为 其他控件的 TriggerMsg;
LoadHtml 当 RefreshType=RefreshType.AjaxHtml 时,在加载时,显示的Html;
AjaxUrl 控件被要求重新刷新时,请求的 Url 地址;
PostParams 控件被修改发送 改变消息时,将会同时提交出去的参数;
AjaxProperty 将会被Ajax返回值,赋值的属性;


2.  但是,上面的设计方案,每个控件仅支持一种Ajax调度方案;
比如,文本框控件,支持了 TextBox 文本改变事件,则不支持其他事件;
当然,一般控件也只有一个核心事件;


3.  调度模式:
需要一个Ajax 的Js简单库,注册 服务器控件的各种请求事件,响应事件并进行调度;

4.  可不可以将  1.  中属性封装到 AjaxSchedule,而控件则 仅需实现这个 对象的集合;
AjaxSchedule 不是一个实体数据类,而是服务器控件:在HTML端,会生成 指定的调度格式;
服务器控件中包含服务器控件,这个需要研究....

5.  控件 和 Ajax 之间可以取消掉 1. 中的接口,让 控件 和 AjaxSchedule 无任何关系,让 AjaxSchedule 自己来确定自己的调度,Ajax 库则只对 AjaxSchedule 进行解析处理;

6.  之前在 CSDN 论坛中提出的 Ajax调度转发 机制,可以将  Ajax  的调度插件化;


加上,前一篇文章中说的,面向概念编程的UI概念化,加上现在的 Ajax 整体交互调度,相信可以为后台的开发 大大的增加效率;




嗯的,找时间实现一哈!!!



舒小龙

2012-02-14 14:54