基于Ajax的MVC,I name it RoyalAjax (一)

在以前的项目中曾经使用过一个ajax的模式,可以从前台传查询语句并获得该查询的结果数组。使用方法类似于下面的代码:

var queryStr="select * from some_table where id='1'";
var queryResult=executeQuery(queryStr);
for(var i=0;i<queryResult["id"].length;i++){
 var id=queryResult["id"][i];
 dummy(id);//business behavior
}


这曾经大大加快了我开发的速度,但是有一个致命的弱点就是暴露了业务逻辑。关于这一点我的解决方法是将处理业务的js代码放入另一个jsp文件中,在使用的时候用<script src="javascript.jsp"/>嵌入进来。这样可以简单地控制一些访问的权限问题。但是在权限要求高的时候,需要在页面写大量的代码来过滤,反而占用了开发时间,仿佛有些舍本求末了。

于是我便产生了另外一个想法。

标准Web开发的缺点在于Http协议的无状态性,用户和系统的一次对话被做成一个请求和一个响应,所以所有独立事务被依次执行。于是中间会有许多数据的传输、转换、解析,如此必将消耗大量的程序开发时间和系统处理时间。

而AJAX的异步性使得这些事务的并发执行成为可能,且不用丢失页面的数据。于是我做了一个Ajax框架,其处理流程描绘在下面的图中:

其思想是前后端通过xml交换数据。

处理流程为:

js传actionID到后台servlet----->后台处理返回一个object并序列化为xml文档------>前台解析xml文档为js object----->处理js object

在我的实现中,主要解决了下面几个问题:

1. 众所周知,HttpRequest的工作方式是为其改变状态定义一个触发器函数(onstatechange=process()),问题是如何将this指针绑定到该函数。

2.java对object的xml格式序列化

3.javascript对xmlDocument的解析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值