JavaScriptMVC模式制作自定义控件的步骤
前面我们讲了表现层的制作,接下来是数据层了。我们可以把它看成是一个仓库,需要的时候就调用方法,当然在这之前我们要初始化他。
下面是数据层的代码:
//JavaScriptDocumentMVC-M
//soap连接加dom分析
//要加入"ajaxrequest.js"
functionassessmentListData(userName,assessmentID){
//构造
varajaxobj=false;
this.userName=userName;
this.assessmentID=assessmentID;
varObjSelf;
ObjSelf=this;
this.callbackdata=function(cbobj){return;}
//
ajaxobj=newAJAXRequest;//创建AJAX对象
ajaxobj.method="POST";//设置请求方式为GET
//参数
ajaxobj.content="userName="+userName+"&assessmentID="+assessmentID+"";
ajaxobj.url="你的web服务地址/WebService.asmx/GetResultInfo"
//设置回调函数,输出响应内容
ajaxobj.callback=function(xmlobj){
ObjSelf.callbackdata(parseData(xmlobj.responseText));
}
ajaxobj.send();
}
//
functionparseData(str){
//生成xml
varxmlDoc=newActiveXObject("microsoft.xmldom");
xmlDoc.async=false;
xmlDoc.loadXML(str);
varxmlElement=xmlDoc.documentElement.getElementsByTagName("NewDataSet");
//得到newdataset
varstatisticalInfo=xmlElement.item(0);
varresultArray=newArray();
if(statisticalInfo!=undefined){
for(i=0;i<statisticalInfo.childNodes.length;i++){
if(statisticalInfo.childNodes.item(i).nodeName=="Table1"){
resultArray.push(statisticalInfo.childNodes.item(i).childNodes.item(1).text);
}
}
}
returnresultArray;
}
//soap连接加dom分析
//要加入"ajaxrequest.js"
functionassessmentListData(userName,assessmentID){
//构造
varajaxobj=false;
this.userName=userName;
this.assessmentID=assessmentID;
varObjSelf;
ObjSelf=this;
this.callbackdata=function(cbobj){return;}
//
ajaxobj=newAJAXRequest;//创建AJAX对象
ajaxobj.method="POST";//设置请求方式为GET
//参数
ajaxobj.content="userName="+userName+"&assessmentID="+assessmentID+"";
ajaxobj.url="你的web服务地址/WebService.asmx/GetResultInfo"
//设置回调函数,输出响应内容
ajaxobj.callback=function(xmlobj){
ObjSelf.callbackdata(parseData(xmlobj.responseText));
}
ajaxobj.send();
}
//
functionparseData(str){
//生成xml
varxmlDoc=newActiveXObject("microsoft.xmldom");
xmlDoc.async=false;
xmlDoc.loadXML(str);
varxmlElement=xmlDoc.documentElement.getElementsByTagName("NewDataSet");
//得到newdataset
varstatisticalInfo=xmlElement.item(0);
varresultArray=newArray();
if(statisticalInfo!=undefined){
for(i=0;i<statisticalInfo.childNodes.length;i++){
if(statisticalInfo.childNodes.item(i).nodeName=="Table1"){
resultArray.push(statisticalInfo.childNodes.item(i).childNodes.item(1).text);
}
}
}
returnresultArray;
}
在这里我用了一个别人写好的 ajax调用webservice的类,他的名字是AJAXRequest。使用方法很简单。ajaxobj.callback事件就是在得到结果时调用的。同样我们将这个事件映射到assessmentListData.callbackdata的事件上。
接着我们就可以测试这个类是否正常。测试htm:




























ajaxrequest.js 在blueidea上下载http://www.blueidea.com/download/product/2006/3993.asp
本文地址:http://www.45fan.com/a/question/71087.html