AJAX 簡單使用

AJAX 是一種在無需重新加載整個網(wǎng)頁的情況下,能夠更新部分網(wǎng)頁的技術(shù)。
常用于: 網(wǎng)頁局部更新

Ajax工作原理


解析原理

1. 創(chuàng)建XHR對象(由于現(xiàn)在IE5,IE6已不在使用,所以不做過多的判斷)
    let xhr = new XMLHttpRequest();

2. XHR的用法
    在使用XHR對象時,要調(diào)用的第一個方法open(), 接收3個參數(shù): 要發(fā)送的請求類型(get、post 等)、請求的URL和表示是否異步的布爾值
    xhr.open("get","data.php",true);
    send()方法接收一個參數(shù),即要作為請求主體發(fā)送的數(shù)據(jù),如果不需要通過請求主體發(fā)送數(shù)據(jù),則必須傳入null
    xhr.send(null);

3. 調(diào)用send()后,請求就回被分到服務(wù)器。在收到響應(yīng)后,響應(yīng)的數(shù)據(jù)會自動填充XHR對象,相關(guān)屬性如下:
    1) responseText: 作為響應(yīng)主體被返回的文本
    2) respoonseXML: 如果響應(yīng)的內(nèi)容類型時xml,這個屬性中將保存包含的響應(yīng)數(shù)據(jù)的XML DOM 文檔
    3) status: 響應(yīng)的HTTP狀態(tài)
    4) statusText: HTTP狀態(tài)的說明

4. 但是在多數(shù)情況下我們會先檢查readyState屬性,該屬性表示請求/響應(yīng)過程的當(dāng)前活動階段
    0: 為初始化。尚未調(diào)用open()方法
    1: 啟動。已經(jīng)調(diào)用open()方法,但尚未調(diào)用send()方法
    2: 發(fā)送。已經(jīng)調(diào)用send()方法,但尚未接收到響應(yīng)
    3: 接收。已經(jīng)接收到部分響應(yīng)數(shù)據(jù)。
    4: 完成。已經(jīng)接收到全部響應(yīng)數(shù)據(jù),而且已經(jīng)在客戶端使用了
    只要readState屬性的值發(fā)生變化,都會觸發(fā)一次readystatechange事件

案例

<div class="box"></div>
<div class="tips" style="display: none">數(shù)據(jù)加載中...</div>
<script>
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
    if(xhr.readyState==1){
        document.querySelector('.tips').style.display = 'block';
    }
    if (xhr.readyState == 4) {
        if(xhr.status >= 200 && xhr.status < 300 || xhr.status == 304){
            document.querySelector('.box').innerText = xhr.responseText;
            document.querySelector('.tips').style.display = 'none';
        }else{
            console.log('error:' + xhr.status);
        }
    }
}
xhr.open('get', 'data02.php', true);
xhr.send(null);
</script>

服務(wù)器端

<?php

// 寫業(yè)務(wù)主體
sleep(2);  // 為了交互效果,睡2s
echo "success";

XHR 對象更好玩的屬性可以把XHR打印出來,逐個研究...

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 額,周圍不少同學(xué)最近開始學(xué)編程,知道api這個東西,也知道ajax這個東西,但是不會用,其實(shí)很簡單這里寫個簡單的使...
    LanceAdd閱讀 610評論 0 0
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,283評論 25 708
  • 前端開發(fā)面試題 <a name='preface'>前言</a> 只看問題點(diǎn)這里 看全部問題和答案點(diǎn)這里 本文由我...
    自you是敏感詞閱讀 905評論 0 3
  • 我昨天就沒有拿的,因?yàn)槲以诘?,丈夫回來。今天又是這樣,我都有點(diǎn)憤怒了。我想了好幾種方案來報復(fù)他 我的時間就又溜走了...
    lygly9閱讀 132評論 0 0
  • HTML代碼: CSS代碼:.test1{width: 0;height: 0;border-right: 50p...
    wumiss閱讀 201評論 0 0

友情鏈接更多精彩內(nèi)容