Ajax+js實現(xiàn)異步交互
一提到異步交互大家就會說ajax,仿佛ajax這個技術已經(jīng)成為了異步交互的代名詞.那下面將研究ajax的核心對象!
利用ajax實現(xiàn)異步交互無非4步:
- 創(chuàng)建ajax核心對象
- 與服務器建立連接
- 向服務器發(fā)送請求
- 接收服務器響應的數(shù)據(jù)
看似神秘的異步交互當明確這4步后,也許在大家腦海里已經(jīng)有了初步的思路了
首先我們創(chuàng)建ajax的核心對象,由于瀏覽器的兼容問題我們在創(chuàng)建ajax核心對象的時候不得考慮其兼容問題,因為要想實現(xiàn)異步交互的后面步驟都基于第一步是否成功的創(chuàng)建了ajax核心對象.
function getXhr(){
// 聲明XMLHttpRequest對象
var xhr = null;
// 根據(jù)瀏覽器的不同情況進行創(chuàng)建
if(window.XMLHttpRequest){
// 表示除IE外的其他瀏覽器
xhr = new XMLHttpRequest();
}else{
// 表示IE瀏覽器
xhr = new ActiveXObject('Microsoft.XMLHttp');
}
return xhr;
}
// 創(chuàng)建核心對象
var xhr = getXhr();
通過上述代碼我們已經(jīng)成功的創(chuàng)建了ajax核心對象,我們保存在變量xhr中,接下來提到的ajax核心對象都將以xhr代替.
第二步就是與服務器建立連接,通過ajax核心對象調用open(method,url,async)方法.
open方法的形參解釋:
method表示請求方式(get或post)
url表示請求的php的地址(注意當請求類型為get的時候,請求的數(shù)據(jù)將以問號跟隨url地址后面,下面的send方法中將傳入null值)
async是個布爾值,表示是否異步,默認為true.在最新規(guī)范中這一項已經(jīng)不在需要填寫,因為官方認為使用ajax就是為了實現(xiàn)異步.
xhr.open("get","01.php?user=xianfeng");//這是get方式請求數(shù)據(jù)
xhr.open("post","01.php");//這是以post方式請求數(shù)據(jù)
第三步我們將向服務器發(fā)送請求,利用ajax核心對象調用send方法
如果是post方式,請求的數(shù)據(jù)將以name=value形式放在send方法里發(fā)送給服務器,get方式直接傳入null值
xhr.send("user=xianfeng");//這是以post方式發(fā)送請求數(shù)據(jù)
xhr.send(null);//這是以get方式
第四步接收服務器響應回來的數(shù)據(jù),使用onreadystatechange事件監(jiān)聽服務器的通信狀態(tài).通過readyState屬性獲取服務器端當前通信狀態(tài).status獲得狀態(tài)碼,利用responseText屬性接收服務器響應回來的數(shù)據(jù)(這里指text類型的字符串格式數(shù)據(jù)).后面再寫XML格式的數(shù)據(jù)和大名鼎鼎的json格式數(shù)據(jù).
xhr.onreadystatechange = function(){
// 保證服務器端響應的數(shù)據(jù)發(fā)送完畢,保證這次請求必須是成功的
if(xhr.readyState == 4&&xhr.status == 200){
// 接收服務器端的數(shù)據(jù)
var data = xhr.responseText;
// 測試
console.log(data);
}
};
- JS基于MSClass和setInterval實現(xiàn)ajax定時采集信息并滾動顯示的方法
- SpringMVC環(huán)境下實現(xiàn)的Ajax異步請求JSON格式數(shù)據(jù)
- 使用Jquery+Ajax+Json如何實現(xiàn)分頁顯示附JAVA+JQuery實現(xiàn)異步分頁
- asp.net+ajaxfileupload.js 實現(xiàn)文件異步上傳代碼分享
- jquery的ajax異步請求接收返回json數(shù)據(jù)實例
- 使用AjaxFileUpload.js實現(xiàn)異步文件上傳示例
- extJS中常用的4種Ajax異步提交方式
- JavaScript中從setTimeout與setInterval到AJAX異步
相關文章
Ajax返回數(shù)據(jù)之前的loading等待效果
我們通過ajax請求,向后臺傳遞參數(shù),然后后臺經(jīng)過一系列的運算之后向前臺返還數(shù)據(jù),我希望在等待數(shù)據(jù)成功返還之前可以展示一個loading.gif圖。接下來通過本文給大家分享Ajax返回數(shù)據(jù)之前的loading等待效果,需要的朋友可以參考下2017-08-08
Json數(shù)據(jù)異步綁定到界面的Table并且自動刷新原理及代碼
做Winform習慣了,大家都習慣設置datasource這樣的寫法,今天就先從這個updatepanel加timer實現(xiàn)頁面自動刷新這個例子來下手吧,感興趣的朋友可以了解下,或許對你學習ajax有所幫助2013-02-02
Ajax提交參數(shù)的值中帶有html標簽不能提交成功的解決辦法(ASP.NET)
這篇文章主要介紹了Ajax提交參數(shù)的值中帶有html標簽不能提交成功的解決辦法(ASP.NET),非常不錯,具有參考借鑒價值,需要的朋友參考下2016-12-12

