版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Ajax復習大Ajax二、Ajax只不過是要在javascript中調(diào)用一個叫XMLHttpRequest類,這個類可以WebHTTP協(xié)議進行交互,程序不通過瀏覽器發(fā)出請求,而是用這個特殊的JavaScript對象發(fā)送請求和接收響應(yīng)。AjaxXMLHttpRequestXMLHttpRequest最早是在IE5ActiveXW3C標準.InternetExplorer把XMLHttpRequestActiveX(FirefoxSafariXMLHttpRequest在不同瀏覽器上實例化方式不同,但是使用實例的屬性和方法都是一直////非IE或IE6Ajax對象方varajax=new//IE7以下瀏覽器創(chuàng)建Ajax方varajax=new XMLHttpRequest參考,xmlhttp.docAjax對象Http請求三、readyState//Ajax對象實體//Ajax對象實體functioncreateAjax(){varajax=null;try{//標準創(chuàng)建代ajax=new}catch(e)//IE標準創(chuàng)建代varMSXML for(varn=0;n<MSXML.length;n++){ajax=newActiveXObject(MSXML[n]);}}return}//AjaxGet請function//1.創(chuàng)建Ajax實例對varajax=//2.創(chuàng)建HTTP請*參數(shù)一:http方法,例如:POST、GET、PUT及PROPFIND。大小寫不敏感。參數(shù)二:請求的URL地址,可以為絕對地址也可以為相對地址。參數(shù)三:指定此請求是否為異步方式,默認為IE緩存問題特別的嚴重,url做緩存,那么我們只需要讓我們url//3.指定當readyState屬性改變時 ajax.onreadystatechange=*0未初始化)對象已建立,但是尚未初始化(尚未調(diào)用open方法(初始化)對象已建立,尚未調(diào)用send方法,已經(jīng)調(diào)用open方(發(fā)送數(shù)據(jù)send方法已調(diào)用,但是當前的狀態(tài)及http(數(shù)據(jù)傳送中)http頭不全,這時通過responseText獲取部(完成)數(shù)據(jù)接收完畢,此時可以通過通過responseText獲取完整的回應(yīng)數(shù)if(ajaxreadyState==4){varresult= }參數(shù):通過此請求發(fā)送的數(shù)據(jù),該參數(shù)只對POST有效//console.debug(ajax.responseText);//無法獲取數(shù)據(jù),Ajax采用的是異步傳輸,send方法調(diào)用后,不會等到數(shù)據(jù)返回完畢,而是直接執(zhí)行下面的代碼,現(xiàn)在可能請求還沒有處理完畢,采用onreadystatechange}//AjaxPost請通過Ajax請求服務(wù)器,服務(wù)器端接收數(shù)據(jù)request.getParameter(“key”),無法獲取參數(shù),因為服務(wù)器端使用的urldecoded進行 ,需要設(shè)置請求頭setRequestHeader("Content-Type","application/x-www-form-function//創(chuàng)建ajax對varajax//創(chuàng)建Http請求,Post請求瀏覽器不會使用緩存.如果用POST請求向服務(wù)器發(fā)送數(shù)據(jù),需要將“Content-Type”的首部設(shè)置為“application/x-知服務(wù)器正在發(fā)送數(shù)據(jù),并且數(shù)據(jù)已經(jīng)符合URL編碼了。因 它使用URL進 ajax.onreadystatechange=*判斷Ajax請求狀態(tài)和Httpif(ajaxreadyState==4&&varresult=ajax ementById("msg").innerHTML=result;}//*參數(shù)一:發(fā)送給服務(wù)器的參數(shù),參數(shù)格式為 }"-<title>Ajax基礎(chǔ)使用<inputtype="button"value="Ajax(GET)"<inputtype=”button”value=”Ajax(POST)”<div3種格式:HTMLHTMLXMLHttpRequestHTML將在responseText屬性中。插入HTML代碼最簡單的方法是更新這個元素的innerHTML屬性。特點:服務(wù)器端把頁面所需要的HTML生成完畢,Ajax"-省<selectid="provinceSelect"城<select<optionvalue="-1">--請選擇city.js文件//頁面加載完畢執(zhí)行份信window.onload=//創(chuàng)建Ajaxvarajax=//創(chuàng)建Http請 readyState屬性改ajax.onreadystatechange=if(ajaxreadyState==4&&ajax.status==200){varresult=ajax.responseText;varprovinceSelect= provinceSelect.innerHTML+=result;}}varcityMap=newfunctionvarprovinceSelect=varcitySelect ='<varpid=provinceSelect.value;}citySelect.innerHTML+=cityMap[pid];}//創(chuàng)建Ajaxvarajax=//創(chuàng)建Http readyStateajax.onreadystatechange=if(ajaxreadyState==4&&ajax.status==200){varresult=ajax.responseText; citySelect.innerHTML+=result;}}Struts2<action<actionname="province"<actionname="city"/WEB-Jsp視圖<%@taglibprefix="s"uri="/struts-tags" tor<optionvalue="<s:propertyvalue="id"/>"><s:property ActionpublicpublicclassProvinceActionextendsActionSupport{publicStringexecute()throwsExceptionList<Province>provinces=HttpServletResponseresponse=ServletActionContext.getResponse();PrintWriterout=response.getWriter();for(Provinceprovince:provinces){out.println("<option}return}}publicpublicclassCityActionextendsActionSupport{privateLongpid;publicvoidsetPid(Longpid){this.pid=pid;}publicStringexecute()throwsExceptionList<City>citys=getCityByProvince(pid);return}//privateList<City>getCityByProvince(longpid)*1L,*1L,"2L,3L山西List<City>citys=newArrayList<City>();if(pid==1L){citys.add(newCity(1L, citys.add(newCity(2L南充citys.add(newCity(3L達州citys.add(newCity(4L遂林citys.add(newCity(5L攀枝花citys.add(newCity(6L宜賓}elseif(pid==2L)citys.add(newCity(7L廣州citys.add(newCity(8L, citys.add(newCity(9L, citys.add(newCity(10L江門}elseif(pid==3L),"citys.add(newCity(12Lcitys.add(newCity(13L晉中citys.add(newCity(14L呂梁}elsecitys.add(newCity(null未知城市}return}}XMLXMLDOM特點:XML是通用的數(shù)據(jù)格式,只負責把對象轉(zhuǎn)換為指定的XML格式,不關(guān)心數(shù)據(jù)顯示,Ajax通過responML屬性接收一個XML文檔對象通過文檔對象獲取數(shù)據(jù)信息。缺點:XML結(jié)構(gòu)過于復雜,那么導致解析過于復雜和繁瑣。window.onloadfunction(){//創(chuàng)建Ajaxvarajax=//創(chuàng)建Http請 readyState屬性改ajax.onreadystatechange=if(ajaxreadyState==4&&//獲取xml文檔對varxmlDoc=ajax //獲取xml中所有的vardatas= varprovinceSelect= for(vari=0;i<datas.length;i++){vardata=varid=varname=datafirstChildvaroption= option.value=id;option.innerHTML=name;}}functionvarprovinceSelect=varcitySelect= citySelect.innerHTMLoptionvalue="-1">--請選擇--</option>';varpid=provinceSelect.value;}//創(chuàng)建Ajaxvarajax=//創(chuàng)建Http請 readyState屬性改ajax.onreadystatechange=if(ajaxreadyState==4&&ajax.status==200){varxmlDoc=ajaxrespon vardatas=xmlDoc.ge }}//處理cityfunctionvarcitySelect= for(vari=0;i<datas.length;i++){vardata=varid=varname=datavaroption= option.value=id;option.innerHTML=name;}}Struts2<action<actionname="provinceXML"<actionname="cityXML"ActionpublicpublicclassProvinceXMLActionextendsActionSupportpublicStringexecute()throwsExceptionList<Province>provinces=Province.getAllProvince();HttpServletResponseresponse=ServletActionContext.getResponse();//設(shè)置響應(yīng)頭信息,必須設(shè)置否則ajax對象無法 ML屬性PrintWriterout=response.getWriter();out.println("<?xmlversion=\"1.0\"encoding=\"UTF-8\"?>");for(Provinceprovince:provinces)}returnnull;}}publicclassCityXMLActionextendsActionSupportprivateLongpublicvoidsetPid(Longpid){this.pid=pid;}publicStringexecute()throwsExceptionList<City>citys=HttpServletResponseresponse=////設(shè)置響應(yīng)頭信息,必須設(shè)置否則ajax對象無法respon ML屬性.PrintWriterout=out.println("<?xmlversion=\"1.0\"encoding=\"UTF-8\"?>");for(Citycity:citys)out.println("<data}returnnull;}//privateList<City>getCityByProvince(longpid)*1L 2L "3L山西List<City>citys=newArrayList<City>();if(pid==1L){citys.add(newCity(1L, citys.add(newCity(2L南充citys.add(newCity(3L達州citys.add(newCity(4L遂林citys.add(newCity(5L攀枝花citys.add(newCity(6L宜賓}elseif(pid==2L)citys.add(newCity(7L廣州citys.add(newCity(8L, citys.add(newCity(9L, citys.add(newCity(10L江門}elseif(pid==3L)citys.add(newCity(11L太原citys.add(newCity(12Lcitys.add(newcitys.add(newCity(13L晉中citys.add(newCity(14L呂梁}elsecitys.add(newCity(null未知城市}return}}JSONJSON(JavaScriptObjectNotation)xml更輕巧。JSON是JavaScriptJavaScriptJSONAPI或工JSON/值’對”集合。一個對象以”{”開始,以“”結(jié)束。屬性值可具有的類型:string,numberobjectarraytruefalseJSON格式其實就是JavaScript中描述對象的一種簡單方式。varJSON格式其實就是JavaScript中描述對象的一種簡單方式。vararr=newvararrvarobj=newvarobj//JSON對象使用 varjson={};=“ json.say=function(){alert(thisname);alert(json//JSON對象使用 //varuser="name":" "age":30,"address":"cd","hiredate""address":"cd","hiredate"newDate(), ":true,"dept":}//JSON編寫小技巧,很多初學者,寫JSONvarobj=newObject();objname=“ obj.age=12; alert(obj.toSoruce());//打印出obj對象的JSON格式,該方法Firefox//多個JSONvarusers=[]; varusers //迭代usersfor(vari=0;i<users.length;i++){varuser=users[i];vars=varobjeval(“(”+s+”)”);//evalJSONLIB使用,jsonjarstruts2\libJSON Struts2publicclassJSONTestpublicpublicstaticvoidmain(String[]args)//JSONObject,List<Province>provinces=Province.getAllProvince();Provinceprovince=provinces.get(0);}}JSON應(yīng)用與//Ajax對象實體functioncreateAjax(){varajax=null;try{//標準創(chuàng)建代ajax=new}catch(e)//IE標準創(chuàng)建代varMSXML for(varn=0;n<MSXML.length;n++){ajax=newActiveXObject(MSXML[n]);}}return}window.onloadfunction(){//創(chuàng)建Ajaxvarajax=//創(chuàng)建Http請readyStateajax.onreadystatechange=if(ajaxreadyState==4&&//獲取返回JSONvarjson=//JSON字符串轉(zhuǎn)換為JSON對象(JavaScripg對象)vardatas=eval("("+json+")");varprovinceSelect= for(vari=0;i<datas.length;i++){vardata=datas[i];varid=data.id;varname=datavaroption= option.value=id;option.innerHTML=name;}}Struts2<package<packagename=”default”namespace=””extends=”json-<actionname="provinceJSON"<actionname="cityJSON"<resultOGNL表達式,需要變成JSON<paramActionProvinceJSONAction(publicpublicclassProvinceJSONActionextendsActionSupportpublicStringexecute()throwsExceptionList<Province>provinces=HttpServletResponseresponse= PrintWriterout=response.getWriter();StringBufferjsonString=newStringBuffer();for(Provinceprovince:provinces){}returnnull;}}publicpublicclassCityJSONActionextendsActionSupport{privateLongpid;publicvoidsetPid(Longpid){this.pid=pid;}publicStringexecute()throwsExceptionList<City>citys=//通過JSONLib把對象轉(zhuǎn)換為JSON字符串/*HttpServletResponseresponse=ServletActionContext.getResponse();PrintWriterout= return}//privateList<City>getCityByProvince(longpid)*1L,"2L,"3L山西List<City>List<City>citys=newArrayList<City>();if(pid==1L){citys.add(newCity(1L, citys.add(newCity(2L南充citys.add(newCity(3L達州citys.add(newCity(4L遂林citys.add(newCity(5L攀枝花citys.add(newCity(6L宜賓}elseif(pid==2L)citys.add(newCity(7L廣州citys.add(newCity(8L, citys.add(newCity(9L, citys.add(newCity(10L江門}elseif(pid==3L),"citys.add(newCity(12Lcitys.add(newCity(13L晉中citys.add(newCity(14L呂梁}elsecitys.add(newCity(null未知城市}return}}JQuery對Ajax操作進行了封裝,在jQuery中最底層的方法時$.ajax(),load$.get()$.post(),$.getScript()$.getJSON()位jQueryjQueryjsjquery-1.5.2.jsjquery-1.5.2-min.js壓縮后(去掉空格,換行Load載入HTML文件代碼并插入至DOM中待裝入任何有效資源地址??梢允且粋€html,jsp,key/value數(shù)據(jù)。JSON格式或者URLJSO
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度車位買賣合同電子版示范文本4篇
- 二零二四年租賃合同協(xié)議:甲方出租房產(chǎn)乙方承租居住2篇
- 二零二五年度招投標合同專用條款-跨境電商平臺建設(shè)3篇
- 二零二四年智能家居系統(tǒng)定制開發(fā)合同
- 2025年度大米產(chǎn)業(yè)鏈融資合作協(xié)議樣本4篇
- 鄉(xiāng)土專家參與融合型農(nóng)技推廣研究
- 二零二五年度潘茅離婚協(xié)議書:婚姻解除及財產(chǎn)分割與子女撫養(yǎng)協(xié)議
- 二零二五年度車棚防水保溫工程設(shè)計與施工合同4篇
- G壽險公司孤兒保單客戶服務(wù)優(yōu)化研究
- 2025年度酒吧員工勞動合同范本3篇
- 變壓器搬遷施工方案
- 單位轉(zhuǎn)賬個人合同模板
- 八年級語文下冊 成語故事 第十五課 諱疾忌醫(yī) 第六課時 口語交際教案 新教版(漢語)
- 中考語文二輪復習:記敘文閱讀物象的作用(含練習題及答案)
- 老年外科患者圍手術(shù)期營養(yǎng)支持中國專家共識(2024版)
- 子宮畸形的超聲診斷
- 2024年1月高考適應(yīng)性測試“九省聯(lián)考”數(shù)學 試題(學生版+解析版)
- (正式版)JBT 11270-2024 立體倉庫組合式鋼結(jié)構(gòu)貨架技術(shù)規(guī)范
- EPC項目采購階段質(zhì)量保證措施
- T-NAHIEM 101-2023 急診科建設(shè)與設(shè)備配置標準
- 針灸與按摩綜合療法
評論
0/150
提交評論