




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
目一、Ajax概 什么是 Ajax對象:如何獲得Ajax對 Ajax對象的屬 編程步 編碼問 Ajax的優(yōu) 緩存問題(IE瀏覽器 案例:簡易(使用Ajax進行相關驗證,get請求 案例:修改1.8案例,使用post請 二、 什么是 數(shù)據(jù)交 輕量 JSON語法 如何使用JSON來編寫Ajax應用程 案例:的實時行 同步請 案例:修改1.8案例step1中的JS代碼(使用同步請求 一、Ajax概述Xml驗的技術,其實質是利用瀏覽器內置的一個特殊對象(XMLHttpRequestAjax的頁面,而是文本或者Xml文檔AjaxAjax對象:如何獲得Ajax對象functiongetXhr(){//注意:后面的案例都將用到此函數(shù)varxhr=null;functiongetXhr(){//注意:后面的案例都將用到此函數(shù)varxhr=null; }return} }return}Ajax對象的屬性1)onreadystatechange:綁定一個處理函數(shù)(器),該函數(shù)用來處理readystatechange。Ajax對象的readyState屬性發(fā)生改變,比如從0到1,則會產生onreadystatechange。 ML:獲得服務器返回的Xml文檔。5)readyStateAjaxnumber類型的值。5個值,分別是:①0(②1(③2(④3(⑤4(編程步驟getstep1Ajax對象,比如:varxhr=getXhr();//調用之前定義的函數(shù)step2Ajaxget請求①調用xhr.open('get',check_username.do?username=chang&age=23,true);true:表示異步請求(Ajax對象發(fā)送請求時,用戶可以對當前頁面作其他functionfunctiondom操作……}}poststep1Ajax對象,比如:varxhr=getXhr();//調用之前定義的函數(shù)step2Ajaxpost請求content-type消息頭getsend因為按照HTTPpostcontent-typeAjax對象在默認情況下,不會發(fā)送這個消息頭,所setRequestHeader方法來添加。編碼問題get<Connectorport="8080"maxThreads="150"minSpareThreads="25"maxSpareThreads="75"enableLookups="false"redirectPort="8443"acceptCount="100"配置(conf<Connectorport="8080"maxThreads="150"minSpareThreads="25"maxSpareThreads="75"enableLookups="false"redirectPort="8443"acceptCount="100"varuir='check_username.do?username='+$F('username');post注意事項:FirefoxAjax的優(yōu)點緩存問題(IE瀏覽器getIE瀏覽(其他瀏覽器沒這個問題內置的Ajax對象會檢查請求地址是否過,如果過,則不再向服務器發(fā)送請求。post方式發(fā)請求。3)案例:在IE瀏覽器中測試緩存問題step1:getNumber.jsp頁面<a<ahref="javascript:;onclick="getNumber();">顯示一個隨機數(shù)<divfunctiongetNumber(){varvarfunctiongetNumber(){varvar}}step3:ServletserviceifRandomr=newRandom();}案例:簡易(使用Ajax進行相關驗證,get請求varxhr=getXhr();//step1獲得Ajax//step2Ajax 處理函數(shù),里面的代碼在狀態(tài)改變時執(zhí)行,且狀態(tài)為4時執(zhí)行if句//readyState4時,Ajaxvarvar$('username_msg').innerHTML=txt;//面 證functioncheck_number(){//檢查varxhr=getXhr();var} <formaction="regist.do" 用戶名:<formaction="regist.do" 用戶名:<inputtype="textname="usernameid="username"<spanclass="tips"真 :<inputtype="text" :<inputtype="text"name="number"id="number"onblur="check_number();"/><ahref="javascript:;"<spanclass="tips"<inputtype="submitvalue="提交注意事項:href="javascript:;"相當于href="#",寫成href="javascript:;"一般要和onclick一起使用表示a元素不再指向一個地址而是點擊后觸發(fā)一個PrintWriterout=response.getWriter();Stringuri=PrintWriterout=response.getWriter();Stringuri=Stringaction=uri.substring(uri.lastIndexOf("/"),uri.lastIndexOf("."));if(action.equals("/check_username")){String try Thread.sleep(6000);}catch(InterruptedExceptione){e.printStackTrace(); thrownewServletException("someerror"); Stringnumber1=request.getParameter("number");HttpSessionsession=request.getSession();Stringnumber2=(String)session.getAttribute("number"); }else 案例:修改1.8案例,使用post請求functioncheck_username_post(){varxhr=getXhr();varfunctioncheck_username_post(){varxhr=getXhr();var}}案例:使用Ajax實現(xiàn)下拉列表Stringname=request.getParameter("name"); }else Stringname=request.getParameter("name"); }else step2:select.jsp<select<selectid="s1"<divfunctionstep3:JavaScriptfunctionvarvarif(xhr.readyState==4){var }}二、JavaScriptObjectNatation,是一種輕量級的數(shù)據(jù)交換技術規(guī)范(數(shù)據(jù)交換將數(shù)據(jù)轉換成一種中間的,與平臺無關的數(shù)據(jù)格式(XmlJSON字符串)發(fā)輕量級JSON相對于XmlXml現(xiàn)在用的少了(AjaxxXml交換數(shù)據(jù)。JSON語法 {varobj={'name':'chang','age':22};functionf2(){//表示一個對象}varvarobj={'name':'chang','age':22};functionf2(){//表示一個對象}var }}JavaScript:Json語法來創(chuàng)建varvarp=varobj=newvarobj=new = obj.age==1=this.age=}vararr=[{'name':'chang','age':22},{'name':'bo','age':23}];}如何使用JSON來編寫Ajax應用程序一般使用JSON提供的API(json-lib)來實現(xiàn)轉換(6個包:1主5副。也可用谷歌提供的API。例如例如 /**效果:{'name':'chang','code':'10086','price':12.8}*/publicstaticvoidtest1(){Stocks=newStock(); /**效果:{'name':'chang','code':'10086','price':12.8}*/publicstaticvoidtest1(){Stocks=newStock(); JSONObjectobj=JSONObject.fromObject(s);//json對象StringjsonStr= /**/**publicstaticvoidtest2()Randomr=newRandom(); DecimalFormatdf=newDecimalFormat("#.##");for(inti=0;i<3;i++){ Stocks=newStock(); JSONArray}String publicstaticvoidtest3()publicstaticvoidtest3()Stock[]stocks=newRandomr=newDecimalFormatdf=newfor(inti=0;i<3;i++){ Stocks=newStock(); JSONArray}String step2:JSONJavaScript一個js文件,里面提供了很多常用的函數(shù),比如: $(id1,id2,id3...)id1,id2...查找對應的節(jié)點,然后放到一個數(shù)據(jù)里面返5)evalJSON()JSONJavaScriptJavaScript對象function var//alert(typeof//prototypeevalJSONJavaScript象}function varvar 案例:的實時行/**/**Randomr=new for(ints.setCode("6000"+r.nextInt(30));double stocks.add(s);串StringjsonStr=array.toString(); out.println(jsonStr);//將JSON字符串發(fā)送到客戶端 <body<body<divid="d1"><div名稱</td><td>股票代碼<tbodystep4:JavaScriptfunctionfunctionf1(){ functionquoto(){ varxhr=getXhr(); xhr.onreadystatechange=function(){if(xhr.readyState==4){vartxt=vararr=txt.evalJSON();//jsonjavascript組 html+='<tr><td>'+arr[i].name++arr[i].code+'</td><td>'+arr[i].price+ $('tb1').innerHTML=}}注意事項:innerHTMLIEtdtable里的其他tr、tbody、thead、caption都不能賦值,只能用它去讀(兼容性問題。案例:顯示熱賣的前3個商品publicList<Sale>publicList<Sale>limit(inttop)throwsList<Sale>list=newArrayList<Sale>(); Connectionconn=DBUtil.getConnection();PreparedStatementprep=conn.prepareStatement("select*fromchang_saleorderbyqtydesclimitprep.setInt(1,ResultSetSalesale=new return step3:ActionServletserviceifintSaleDAOdao=newSaleDAO(); List<Sale>sales=newArrayList<Sale>();try{sales=dao.limit(top); JSONArrayarray=JSONArray.fromObject(sales);StringjsonStr=array.toString(); out.println(jsonStr);}catch(Exceptione){ functionfunctionquoto(){ varxhr=getXhr();}varif(xhr.readyState==4){ varfunctionfunctionquoto(){ varxhr=getXhr();}varif(xhr.readyState==4){ vartxt=xhr.responseText;vararr=txt.evalJSON(); varhtml=''; html+='<tr><td>'++'</td><td>'+arr[i].qty+$('tb1').innerHTML=html;} }同步請求Ajax對象在向服務器發(fā)送請求時,瀏覽器會鎖定當前頁面,用戶不能夠對當前頁注意事項:Firefox的某些版本(3、4)對于同步的支持比較特殊:不能使用xhr.onreadystatechange來綁定一個處理函數(shù),而應該在send方法執(zhí)if(navigator.userAgent.indexOf('Firefox')!=-1){if(navigator.userAgent.indexOf('Firefox')!=-1){return return'other';}//}functionif(getT
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 德州職業(yè)技術學院《工程翻譯》2023-2024學年第二學期期末試卷
- 貴州電子商務職業(yè)技術學院《社會查與統(tǒng)計》2023-2024學年第二學期期末試卷
- 天津醫(yī)科大學臨床醫(yī)學院《大學化學下》2023-2024學年第二學期期末試卷
- 淮陰工學院《大學人文專題教育》2023-2024學年第二學期期末試卷
- 沈陽體育學院《中國法律思想史》2023-2024學年第二學期期末試卷
- 吉林農業(yè)科技學院《游戲引擎原理及應用二》2023-2024學年第二學期期末試卷
- 湖北職業(yè)技術學院《空間飛行器總體設計》2023-2024學年第二學期期末試卷
- 浙江工貿職業(yè)技術學院《非織造布設計》2023-2024學年第二學期期末試卷
- 天津國土資源和房屋職業(yè)學院《咖啡茶文化與服務理論教學》2023-2024學年第二學期期末試卷
- 河南機電職業(yè)學院《物理化學B(限選)》2023-2024學年第二學期期末試卷
- 高大模板支架坍塌事故案例及控制要點
- 婚內財產債務協(xié)議書(通用)
- 部編版四年級下冊道德與法治 第4課 買東西的學問(第2課時) 教學課件
- 慢性活動性EB病毒課件
- 葡萄胎全面版課件
- 《冷沖壓工藝與模具設計》完整版ppt課件全套教程
- 業(yè)務招待費明細單
- 高效液相色譜法分析(三聚氰胺)原始記錄1
- 典雅中國風詩詞大會古風PPT模板
- Part 7 Formal and Informal Styles課件
- 文化差異及跨文化交際試題集
評論
0/150
提交評論