三、數(shù)據(jù)層
前面我們講了表現(xiàn)層的制作,接下來是數(shù)據(jù)層了。我們可以把它看成是一個倉庫,需要的時候就調(diào)用方法,當(dāng)然在這之前我們要初始化他。
下面是數(shù)據(jù)層的代碼:
// JavaScript Document MVC-M //soap連接加dom分析 //要加入"ajaxrequest.js" function assessmentListData(userName,assessmentID){ //構(gòu)造 var ajaxobj = false; this.userName = userName; this.assessmentID=assessmentID; var ObjSelf; ObjSelf=this; this.callbackdata=function(cbobj) {return;} // ajaxobj =new AJAXRequest; // 創(chuàng)建AJAX對象 ajaxobj.method="POST"; // 設(shè)置請求方式為GET //參數(shù) ajaxobj.content="userName="+userName +"&assessmentID="+assessmentID+""; ajaxobj.url="你的web服務(wù)地址/WebService.asmx/GetResultInfo" // 設(shè)置回調(diào)函數(shù),輸出響應(yīng)內(nèi)容 ajaxobj.callback=function(xmlobj) { ObjSelf.callbackdata(parseData(xmlobj.responseText)); } ajaxobj.send(); } // function parseData(str){ //生成xml var xmlDoc = new ActiveXObject("microsoft.xmldom"); xmlDoc.async = false; xmlDoc.loadXML(str); var xmlElement = xmlDoc.documentElement.getElementsByTagName("NewDataSet"); //得到newdataset var statisticalInfo = xmlElement.item(0); var resultArray = new Array(); 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); } } } return resultArray; } 在這里我用了一個別人寫好的 ajax調(diào)用webservice的類,他的名字是AJAXRequest。使用方法很簡單。ajaxobj.callback事件就是在得到結(jié)果時調(diào)用的。同樣我們將這個事件映射到assessmentListData.callbackdata的事件上。
接著我們就可以測試這個類是否正常。測試htm:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<html xmlns="<head> <!--加入webservice連接--> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>v2</title> <script language="javascript" src="assessmentListData.js"></script><!--數(shù)據(jù)層類--> <script language="javascript" src="ajaxrequest.js" type="text/javascript"> </script><!--ajax webservice連接類--> <script language="javascript" type="text/javascript">... function init()...{ var data = new assessmentListData("test01","86"); data.callbackdata = function (xmlobj)...{ alert(xmlobj); } }
</script> </head>
<body onload="init()"> <div>測試成績單數(shù)據(jù)層</div> <div></div> </body> </html>
ajaxrequest.js 在blueidea上下載 http://www.95time.cn/download/product/2006/3993.asp
出處:藍(lán)色理想
責(zé)任編輯:moby
上一頁 Js 按照MVC模式制作自定義控件 [2] 下一頁 Js 按照MVC模式制作自定義控件 [4]
◎進(jìn)入論壇網(wǎng)頁制作、網(wǎng)站綜合版塊參加討論
|