Ajax

1.ajax 是什么?有什么作用啡省?

ajax主要是實現(xiàn)頁面和web服務器之間數(shù)據(jù)的異步傳輸娜睛。
不采用ajax的頁面,當用戶在頁面發(fā)起請求時卦睹,就要進行整個頁面的刷新畦戒,刷新快慢取決于服務器的處理快慢。在這個過程中用戶必須得等待结序,不能進行其他操作障斋;采用ajax的頁面,可以實現(xiàn)頁面的局部更新徐鹤,并且發(fā)起請求后垃环,用戶還可以進行頁面上的其他操作;

2.前后端開發(fā)聯(lián)調(diào)需要注意哪些事情返敬?后端接口完成前如何 mock 數(shù)據(jù)遂庄?

需要注意的事情:

  • 約定數(shù)據(jù):確定需要傳輸?shù)臄?shù)據(jù)及數(shù)據(jù)類型
  • 約定接口:確定接口名稱及請求和響應的格式,請求的參數(shù)名稱劲赠、響應的數(shù)據(jù)格式涛目;
    如何mock數(shù)據(jù):
  • 方法一:使用xampp等工具,搭建本地web服務器凛澎,編寫php腳本提供數(shù)據(jù)
  • 方法二:使用server-mock模擬數(shù)據(jù)

3.點擊按鈕霹肝,使用 ajax 獲取數(shù)據(jù),如何在數(shù)據(jù)到來之前防止重復點擊?

  • 使用button的disabled屬性塑煎,配合setTimeout 0沫换,使在數(shù)據(jù)到來之前按鈕都不能被點擊
ele.addEventListener('click',function(){ 
    this.disabled=true; 
    ajax();
    setTimeout(this.disabled=false,0); 
});
  • 設置一個開關(guān),初始狀態(tài)是false最铁,發(fā)生點擊事件后苗沧,開關(guān)狀態(tài)置為true刊棕,直到ajax請求完成后,開關(guān)狀態(tài)才會被重新置為false待逞。
var lock = false;
ele.addEventListener('click',function(){
    if(!lock){ 
        lock = true; 
        ajax(); 
        lock = false; 
    }
});

代碼

1.封裝一個 ajax 函數(shù)甥角,能通過如下方式調(diào)用

function ajax(opts) {
    //  做參數(shù)兼容
    opts.success = opts.success || function(){};
    opts.error = opts.error || function(){};
    opts.type = opts.type || 'get';
    opts.dataType = opts.dataType || 'json';
    opts.data = opts.data || {};

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

調(diào)用方式:

document.querySelector('#btn').addEventListener('click', function(){ 
    ajax({ url: 'getData.php',    //接口地址
       type: 'get',     // 類型,post 或者 get,
       data: { 
       username: 'xiaoming', 
       password: 'abcd1234' 
       }, 
       success: function(ret){ 
         console.log(ret);  // {status: 0} 
       }, 
       error: function(){ 
         console.log('出錯了') 
      } 
    })
});

代碼

1.實現(xiàn)如下加載更多的功能
本地測試通過GitHub上代碼地址
2.實現(xiàn)注冊表單驗證功能
xampp上測試通過GitHub上代碼地址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末识樱,一起剝皮案震驚了整個濱河市嗤无,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌怜庸,老刑警劉巖当犯,帶你破解...
    沈念sama閱讀 223,207評論 6 521
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異割疾,居然都是意外死亡嚎卫,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,455評論 3 400
  • 文/潘曉璐 我一進店門宏榕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拓诸,“玉大人,你說我怎么就攤上這事麻昼〉熘В” “怎么了?”我有些...
    開封第一講書人閱讀 170,031評論 0 366
  • 文/不壞的土叔 我叫張陵抚芦,是天一觀的道長倍谜。 經(jīng)常有香客問我,道長叉抡,這世上最難降的妖魔是什么尔崔? 我笑而不...
    開封第一講書人閱讀 60,334評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮褥民,結(jié)果婚禮上您旁,老公的妹妹穿的比我還像新娘。我一直安慰自己轴捎,他們只是感情好鹤盒,可當我...
    茶點故事閱讀 69,322評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著侦副,像睡著了一般侦锯。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上秦驯,一...
    開封第一講書人閱讀 52,895評論 1 314
  • 那天尺碰,我揣著相機與錄音,去河邊找鬼。 笑死亲桥,一個胖子當著我的面吹牛洛心,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播题篷,決...
    沈念sama閱讀 41,300評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼词身,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了番枚?” 一聲冷哼從身側(cè)響起法严,我...
    開封第一講書人閱讀 40,264評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎葫笼,沒想到半個月后深啤,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,784評論 1 321
  • 正文 獨居荒郊野嶺守林人離奇死亡路星,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,870評論 3 343
  • 正文 我和宋清朗相戀三年溯街,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片洋丐。...
    茶點故事閱讀 40,989評論 1 354
  • 序言:一個原本活蹦亂跳的男人離奇死亡呈昔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出垫挨,到底是詐尸還是另有隱情韩肝,我是刑警寧澤触菜,帶...
    沈念sama閱讀 36,649評論 5 351
  • 正文 年R本政府宣布九榔,位于F島的核電站,受9級特大地震影響涡相,放射性物質(zhì)發(fā)生泄漏哲泊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,331評論 3 336
  • 文/蒙蒙 一催蝗、第九天 我趴在偏房一處隱蔽的房頂上張望切威。 院中可真熱鬧,春花似錦丙号、人聲如沸先朦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,814評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽喳魏。三九已至,卻和暖如春怀薛,著一層夾襖步出監(jiān)牢的瞬間刺彩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,940評論 1 275
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留创倔,地道東北人嗡害。 一個月前我還...
    沈念sama閱讀 49,452評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像畦攘,于是被迫代替她去往敵國和親霸妹。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,995評論 2 361

推薦閱讀更多精彩內(nèi)容

  • ajax是什么: ajax簡單的說就是做數(shù)據(jù)交互使用的念搬。 Ajax的原理簡單來說通過XmlHttpRequest對...
    liudai123閱讀 410評論 0 0
  • AJAX 原生js操作ajax 1.創(chuàng)建XMLHttpRequest對象 var xhr = new XMLHtt...
    碧玉含香閱讀 3,217評論 0 7
  • 大家好,我是IT修真院深圳分院第3期的學員爷恳,一枚正直純潔善良的前端程序員有缆,今天給大家分享一下,修真院官網(wǎng)前端工程師...
    大大頭大閱讀 7,718評論 1 72
  • 1: ajax 是什么温亲?有什么作用棚壁? ajax全稱是Asynchrous JavaScript XML的縮寫。 作...
    LINPENGISTHEONE閱讀 186評論 0 0
  • 很長很長一段時間栈虚,我都覺得夜晚讓我內(nèi)心寧靜袖外。 白天不敢面對的、消化不了的都可以在夜里反復咀嚼魂务、掙扎曼验、然后平息。 不...
    秧秧ing閱讀 211評論 0 0