Ajax總結(jié)

今天封裝了一個(gè)簡單的ajax。所以順便總結(jié)一下。

#######ajax概念

  • ajax:Asynchronous JavaScript and XML。異步的JavaScript和XML
  • 作用:實(shí)現(xiàn)網(wǎng)頁的異步加載,局部刷新網(wǎng)頁。當(dāng)在向服務(wù)器獲取新數(shù)據(jù)時(shí)不需要刷新整個(gè)網(wǎng)頁,提高用戶體驗(yàn)。
  • 優(yōu)點(diǎn):
    (1)更新數(shù)據(jù)而不需要刷新頁面: 它能在不刷新整個(gè)頁面的前提下與服務(wù)器通信維護(hù)數(shù)據(jù),由于ajax是按照需求請求數(shù)據(jù),避免發(fā)送那些沒有改變的數(shù)據(jù)
    (2)異步通信: 它與服務(wù)器使用異步的方式通信,不會(huì)打斷用戶的操作(卡死頁面)
    (3)前后端負(fù)載平衡: 可以將后端服務(wù)器的一些工作轉(zhuǎn)移給客戶端,利用客戶端限制的能力來處理,減輕了服務(wù)器的負(fù)擔(dān)
    (4)數(shù)據(jù)與呈現(xiàn)分離: 利于分工,降低前后耦合
  • 缺點(diǎn)
    (1)瀏覽器歷史記錄的遺失: 在使用AJAX對頁面進(jìn)行改變后,由于并沒有刷新頁面,沒有改變頁面的訪問歷史,當(dāng)用戶想要回到上一個(gè)狀態(tài)時(shí),無法使用瀏覽器提供的后退
    (2)AJAX的安全問題: AJAX的出現(xiàn)就像建立起了一直通服務(wù)器的另一條通道,容易遭受到一些攻擊

ajax封裝

可以滿足基本的需求。后面根據(jù)使用情況會(huì)一點(diǎn)點(diǎn)更新。

function ajax(opts){
var xhr = new XMLHttpRequest();
var data = '';
for(var key in opts.data){
    data += key + "=" + opts.data[key] + "&";
}
data = data.substring(0,data.length-1);
xhr.onreadystatechange = function(){
    if(xhr.readyState == 4){
        if(xhr.status == 200){
            var result = JSON.parse(xhr.responseText);
            opts.success(result);    
        }else{
            opts.error();
        }
    }
}
if(opts.type == "get"){
    xhr.open("get",opts.url+"?"+data,true);   
    xhr.send();
}
if(opts.type == "post"){
    xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');
    xhr.open("post",opts.url,true);   
    xhr.send(data);
}
}

調(diào)用格式
  ajax({
    url: '/login',   //接口地址
    type: 'get',               // 類型, post 或者 get,
    data: {
        username: 'xiaoming',
        password: 'abcd1234'
    },
    success: function(ret){
        console.log(ret);       // {status: 0}
    },
    error: function(){
       console.log('出錯(cuò)了')
    }
})
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 原文出處 http://blog.poetries.top/2016/11/26/Ajax-summary 關(guān)注公...
    前端進(jìn)階之旅閱讀 6,822評論 3 110
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,001評論 25 709
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,545評論 19 139
  • 這題目有點(diǎn)怪?怎么聯(lián)想起來?農(nóng)夫山泉的泉水很好聽,就像大自然開了露天KTV?很扯,這兩件事跟沒見識(shí)有關(guān)。 那天坐公...
    陳隋閱讀 378評論 0 1
  • 最近一直在訓(xùn)練鳴鳴正確表達(dá)需求的方式。晚上他在地上玩兒小汽車,我和姐姐坐在沙發(fā)上,兩次他都嫌我倆的腳擋他的路了。第...
    鴿子1007閱讀 270評論 0 0

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