Ajax

Ajax(異步的javascript和XML),若干年以前它的出現(xiàn)使得javascript重新得到程序員們的重視,它終結(jié)了用戶“單擊,等待”的交互過程,通過異步模式民傻,讓用戶在單擊(形如表單提交,添加購物車等需要與后臺交互的動作)之后仍能進行其他操作而不是要等服務(wù)器響應(yīng)完后才能進行后續(xù)操作。

Ajax的核心—XMLHttpRequest


可以說Ajax的精華部分就是它的XMLHttpRequest對象场斑,為了方便起見簡稱XHR對象漓踢。

既然是對象,那么它就有原生的屬性和方法

  1. readyState:請求/響應(yī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)接受全部數(shù)據(jù)吴菠,而且已經(jīng)可以在客戶端使用

  2. status:響應(yīng)的Http狀態(tài)者填,例如200,404,304等

  3. open方法:接收三個參數(shù),分別是:請求方式做葵,請求的url占哟,同步還是異步(false or true)

  4. send方法:接收一個參數(shù),如果用get方式的話參數(shù)可以不寫或者是null酿矢,如果用post方式的話參數(shù)是請求的數(shù)據(jù)榨乎。

  5. responseText:服務(wù)器返回的數(shù)據(jù)

  6. onreadystatechange事件:每當readystate的值發(fā)生改變都會觸發(fā)一次該事件。

打開控制臺可以看到Http頭部信息

一個簡單的Ajax實例:

document.getElementById('ajax').addEventListener('click',function()
{
    var xml=new XMLHttpRequest();
    xml.onreadystatechange=function()
    {
        if(xml.readyState==4 && xml.status==200)
        {
            console.log(xml.responseText);
        }
    };
    xml.open("get","user.json");
    xml.send();})


細說POST和GET的區(qū)別


GET請求

  1. GET方式直接將請求的數(shù)據(jù)添加在URL的末尾
xml.open('GET',"ajax.php?number="+document.getElementById('keybord').value);
xml.send();

2.GET請求發(fā)送數(shù)據(jù)量小
3.請求數(shù)據(jù)瘫筐,用于查詢信息蜜暑,也就是取數(shù)據(jù)
4.GET請求發(fā)送后被緩存

POST請求

  1. POST方式模仿form的表單提交,所以要設(shè)置Content-Type頭部信息為application/x-222-form-urlencoded
    xml.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xml.open('POST','ajax.php');
var data="name="+document.getElementById("stuffname").value+
"&number="+document.getElementById("stuffnumber").value+
"&sex="+document.getElementById("stuffsex").value+
"&job="+document.getElementById("stuffjob").value;
xml.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xml.send(data);
  1. POST請求發(fā)送數(shù)據(jù)量大
  2. 用于向服務(wù)器發(fā)送被保存的數(shù)據(jù)策肝,也就是存數(shù)據(jù)
  3. POST沒有緩存

注意:如果post的是表單肛捍,則需要先對表單對象進行序列化,可以使用jQuery中的serialize()方法之众,也可以用原生的js封裝拙毫。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市棺禾,隨后出現(xiàn)的幾起案子缀蹄,更是在濱河造成了極大的恐慌,老刑警劉巖膘婶,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件袍患,死亡現(xiàn)場離奇詭異,居然都是意外死亡竣付,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門滞欠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來古胆,“玉大人,你說我怎么就攤上這事筛璧∫菀铮” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵夭谤,是天一觀的道長棺牧。 經(jīng)常有香客問我,道長朗儒,這世上最難降的妖魔是什么颊乘? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任参淹,我火速辦了婚禮,結(jié)果婚禮上乏悄,老公的妹妹穿的比我還像新娘浙值。我一直安慰自己,他們只是感情好檩小,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布开呐。 她就那樣靜靜地躺著,像睡著了一般规求。 火紅的嫁衣襯著肌膚如雪筐付。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天阻肿,我揣著相機與錄音瓦戚,去河邊找鬼。 笑死冕茅,一個胖子當著我的面吹牛伤极,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播姨伤,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼哨坪,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了乍楚?” 一聲冷哼從身側(cè)響起当编,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎徒溪,沒想到半個月后忿偷,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡臊泌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年鲤桥,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片渠概。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡茶凳,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出播揪,到底是詐尸還是另有隱情贮喧,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布猪狈,位于F島的核電站箱沦,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏雇庙。R本人自食惡果不足惜谓形,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一灶伊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧套耕,春花似錦谁帕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至康愤,卻和暖如春儡循,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背征冷。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工择膝, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人检激。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓肴捉,卻偏偏與公主長得像,于是被迫代替她去往敵國和親叔收。 傳聞我的和親對象是個殘疾皇子齿穗,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

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