基于 Dojo toolkit 实现 web2.0 的 MVC 模式
2010-04-13 00:00:00 来源:WEB开发网清单 21. 修改后的 Controller.js
if (!dojo._hasResource["taas._base.Controller"]) {
dojo._hasResource["taas._base.Controller"] = true;
dojo.provide("taas._base.Controller");
dojo.declare("taas._base.Controller",null,{
});
taas._base.Controller.remoteUpdate = function (dataModelUri,topic,requestContent){
_topic = topic;
_dataModelUri = dataModelUri;
_requestContent = requestContent;
console.debug(_requestContent);
var doResponse = function (responseText){
dojo.forEach(_topic,function(item){
var jsonObj = dojo.fromJson(responseText)[item];
//console.debug(dojo.toJson(jsonObj));
dojo.publish(item,[dojo.toJson(jsonObj)]);
});
};
var getFormJson = function() {
dojo.xhrGet({
url: _dataModelUri,
preventCache: true,
content:_requestContent,
handleAs: "text",
method:"get",
load: doResponse
});
};
var getFromForm = function() {
dojo.xhrGet({
url: _dataModelUri,
preventCache: true,
form:_requestContent,
handleAs: "text",
method:"get",
load: doResponse
});
};
var doRequest = function () {
if(dojo.isObject(_requestContent)) {
getFormJson();
}
else if(dojo.isString(_requestContent)){
getFromForm();
}
};
doRequest();
}
}
如何使用
<input type="button"
, ["projects"], {
'action' : 'querybyuserid'
});”
清单中代码中 onclick 属性调用了 Controller 的 remoteUpdate 方法,该方法将调用远程 servlet 的 doGet/doPost 方法,并将相应的请求参数发给远程 servlet。远程 servlet 收到请求后进行相应的业务逻辑处理,最后将处理结果返回到 controller 的回调函数执行从而刷新视图。
结束语
使用 web2.0 的 MVC 模式,使我们能更加关于与业务逻辑的实现,而不用纠缠与服务器端数据模型与 web 页面的展示如何同步。
- ››基于IP地址的vsftp服务器
- ››基于MySQL 水平分区的优化示例
- ››基于CentOS5的Linux下pptp和openvpn的搭建及配置
- ››基于JavaScript的网页版塔防游戏
- ››基于Android平台 QQ大战360手机游戏爆红
- ››基于Windows Azure的云计算应用设计
- ››基于AES算法实现对数据的加密
- ››基于SoPC目标板Flash编程设计的创建及应用
- ››基于SolidWarks齿轮机构的运动分析与仿真
- ››基于Windwos Server 2008故障转移群
- ››基于JavaScript的REST客户端框架
- ››Dojo QuickStart 快速入门教程 (4) 简单的测试框架...
更多精彩
赞助商链接