資源描述:
《使用js和ajax發(fā)出異步請(qǐng)求》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、使用JS和Ajax發(fā)出異步請(qǐng)求??本文介紹了如何創(chuàng)建能夠適應(yīng)不同瀏覽器的XMLHttpRequest實(shí)例,建立和發(fā)送請(qǐng)求,并響應(yīng)服務(wù)器。您將開始接觸最基本和基礎(chǔ)性的有關(guān)Ajax的全部對(duì)象和編程方法:XMLHttpRequest對(duì)象。該對(duì)象實(shí)際上僅僅是一個(gè)跨越所有Ajax應(yīng)用程序的公共線程,您可能已經(jīng)預(yù)料到,只有徹底理解該對(duì)象才能充分發(fā)揮編程的潛力。?XMLHttpRequest簡介XMLHttpRequest是JS的一個(gè)對(duì)象。它是介紹Web2.0、Ajax和大部分其他內(nèi)容的核心。下面給出該對(duì)象的幾個(gè)方法和屬性:1、open():建立到服務(wù)器的新請(qǐng)求。
2、?2、send():向服務(wù)器發(fā)送請(qǐng)求。?3、abort():退出當(dāng)前請(qǐng)求。?4、readyState:提供當(dāng)前HTML的就緒狀態(tài)。?5、responseText:服務(wù)器返回的請(qǐng)求響應(yīng)文本。用XMLHttpRequest能夠做什么呢,值得注意的是這些方法和屬性都與發(fā)送請(qǐng)求及處理響應(yīng)有關(guān)。事實(shí)上,如果看到XMLHttpRequest的所有方法和屬性,就會(huì)發(fā)現(xiàn)它們都與非常簡單的請(qǐng)求/響應(yīng)模型有關(guān)。用好該對(duì)象可以徹底改變您的應(yīng)用程序。?創(chuàng)建XMLHttpRequest對(duì)象實(shí)例首先需要?jiǎng)?chuàng)建一個(gè)新變量并賦給它一個(gè)XMLHttpRequest對(duì)象實(shí)例。這在JS中很
3、簡單,只要對(duì)該對(duì)象名使用new關(guān)鍵字即可.創(chuàng)建新的XMLHttpRequest對(duì)象:varrequest=newXMLHttpRequest();?創(chuàng)建XMLHttpRequest的Java偽代碼:XMLHttpRequestrequest=newXMLHttpRequest();?錯(cuò)誤與跨瀏覽器處理在實(shí)際上各種事情都可能出錯(cuò),而上面的代碼沒有提供任何錯(cuò)誤處理。較好的辦法是創(chuàng)建該對(duì)象,并在出現(xiàn)問題時(shí)優(yōu)雅地退出。比如,任何較早的瀏覽器都不支持XMLHttpRequest,您需要讓這些用戶知道有些地方出了問題。下面說明如何創(chuàng)建該對(duì)象,以便在出現(xiàn)問題的時(shí)候
4、發(fā)出JavaScript警告。創(chuàng)建具有錯(cuò)誤處理能力的XMLHttpRequest對(duì)象varrequest=false;try{?request=newXMLHttpRequest();}catch(failed){?request=false;}if(!request)?alert("ErrorinitializingXMLHttpRequest!");?一定要理解這些步驟:?1、創(chuàng)建一個(gè)新變量request并賦值false。后面將
5、使用false作為判定條件,它表示還沒有創(chuàng)建XMLHttpRequest對(duì)象。?2、增加try/catch塊:?3、嘗試創(chuàng)建XMLHttpRequest對(duì)象。?4、如果失?。╟atch(failed))則保證request的值仍然為false。?5、檢查request是否仍為false(如果一切正常就不會(huì)是false)。?6、如果出現(xiàn)問題(request是false)則使用JavaScript警告通知用戶出現(xiàn)了問題。?現(xiàn)在已經(jīng)得到了一段帶有錯(cuò)誤檢查的XMLHttpRequest對(duì)象創(chuàng)建代碼,還可以告訴您哪兒出了問題。?增加對(duì)Microsoft瀏覽器的
6、支持varrequest=false;try{?request=newXMLHttpRequest();}catch(trymicrosoft){?try{???request=newActiveXObject("Msxml2.XMLHTTP");?}catch(othermicrosoft){???try{?????request=newActiveXObject("Microsoft.XMLHTTP");???}catch(failed){???
7、??request=false;???}?}}if(!request)?alert("ErrorinitializingXMLHttpRequest!");?下面分別介紹每一步:1、創(chuàng)建一個(gè)新變量request并賦值false。使用false作為判斷條件,它表示還沒有創(chuàng)建XMLHttpRequest對(duì)象。?2、增加try/catch塊:?3、嘗試創(chuàng)建XMLHttpRequest對(duì)象。4、檢查request是否仍然為false(如果一切順利就不會(huì)是false)。?5、如果出現(xiàn)問題(request是false)則使用JavaScript
8、警告通知用戶出現(xiàn)了問題。?這樣修改代碼之后再使用InternetExplorer試驗(yàn),就應(yīng)該看到已經(jīng)創(chuàng)建的表