国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

AJAX總結(jié)(二),手寫(xiě)AJAX

娣辯孩 / 2161人閱讀

摘要:創(chuàng)建對(duì)象指定響應(yīng)函數(shù)打開(kāi)連接指定請(qǐng)求發(fā)送請(qǐng)求創(chuàng)建響應(yīng)函數(shù)注第三步是使用對(duì)象的方法,字面意思是打開(kāi)的意思,即打開(kāi)連接。

前言

博主博客:Stillwater的博客
知乎專(zhuān)欄:前端汪汪
本文為作者原創(chuàng)轉(zhuǎn)載請(qǐng)注明出處:
http://hiztx.top/2017/01/12/a...

在前端面試的時(shí)候經(jīng)常會(huì)有如下情景。AJAX會(huì)嗎?能不能手寫(xiě)個(gè)AJAX?第一個(gè)問(wèn)題可以參見(jiàn)我的另一篇博客,AJAX總結(jié)(一),AJAX概述。這篇博文我們來(lái)回答第二個(gè)問(wèn)題,手寫(xiě)AJAX。

一、手寫(xiě)AJAX的步驟

??手寫(xiě)AJAX并沒(méi)有一個(gè)固定的標(biāo)準(zhǔn)的答案,但是AJAX的關(guān)鍵步驟就那么幾步,我會(huì)先用文字介紹關(guān)鍵步驟,然后給出兩個(gè)版本的手寫(xiě)AJAX的代碼及注釋。幫助大家很好地理解和記憶。

創(chuàng)建XMLHttpRequest對(duì)象

指定響應(yīng)函數(shù)

打開(kāi)連接(指定請(qǐng)求)

發(fā)送請(qǐng)求

創(chuàng)建響應(yīng)函數(shù)

注:第三步是使用XMLHttpRequest對(duì)象的open()方法,字面意思o(jì)pen是打開(kāi)的意思,即打開(kāi)連接。但是準(zhǔn)確的說(shuō)應(yīng)該是指定Http請(qǐng)求。因?yàn)闉g覽器在使用AJAX技術(shù)與服務(wù)通信時(shí),發(fā)送的是Http請(qǐng)求,那么就要指定Http的請(qǐng)求方法,url等信息。

二、參考代碼(W3C)
var xmlhttp=null;//聲明一個(gè)變量,用來(lái)實(shí)例化XMLHttpRequest對(duì)象
if (window.XMLHttpRequest)
  {
  xmlhttp=new XMLHttpRequest();// 新版本的瀏覽器可以直接創(chuàng)建XMLHttpRequest對(duì)象
  }
  
else if (window.ActiveXObject)
  {
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");// IE5或IE6沒(méi)有XMLHttpRequest對(duì)象,而是用的ActiveXObject對(duì)象
  }
  
  
if (xmlhttp!=null)
  {
  xmlhttp.onreadystatechange=state_Change;//指定響應(yīng)函數(shù)為state_Change
  xmlhttp.open("GET","/example/xdom/note.xml",true);//指定請(qǐng)求,這里要訪問(wèn)在/example/xdom路徑下的note.xml文件,true代表的使用的是異步請(qǐng)求
  xmlhttp.send(null);//發(fā)送請(qǐng)求
  } 
else
  {
  alert("Your browser does not support XMLHTTP.");
  }

//創(chuàng)建具體的響應(yīng)函數(shù)state_Change
function state_Change()
{
if (xmlhttp.readyState==4)
  {
  if (xmlhttp.status==200)
    {
    // 這里應(yīng)該是函數(shù)具體的邏輯
    }
  else
    {
    alert("Problem retrieving XML data");
    }
  }
}

創(chuàng)建XMLHttpRequest對(duì)象 (1-10行代碼)

指定響應(yīng)函數(shù)(第15行代碼)

打開(kāi)連接(指定請(qǐng)求)(第16行代碼)

發(fā)送請(qǐng)求(第18行代碼)

創(chuàng)建響應(yīng)函數(shù)(25-38行代碼)

??這個(gè)是W3C上講解AJAX的代碼,比較權(quán)威,我做了一些注釋?zhuān)奖愦蠹依斫狻C嬖嚨臅r(shí)候?qū)戇@段代碼應(yīng)該是沒(méi)有問(wèn)題的。
W3C原文鏈接

三、參考代碼(MDN)


  Make a request



創(chuàng)建XMLHttpRequest對(duì)象 (第13行代碼)

指定響應(yīng)函數(shù)(第19行代碼)

打開(kāi)連接(指定請(qǐng)求)(第21行代碼)

發(fā)送請(qǐng)求(第23行代碼)

創(chuàng)建響應(yīng)函數(shù)(29-37行代碼)

??這個(gè)是MDN上講解AJAX的代碼,我做了一些注釋?zhuān)奖愦蠹依斫狻?br>MDN原文鏈接

四、總結(jié)

這篇文章講解了如何較為規(guī)范的手寫(xiě)AJAX,下篇文章我會(huì)具體介紹XMLHttpRequest對(duì)象的有關(guān)知識(shí)以及AJAX相關(guān)的Http請(qǐng)求的知識(shí)。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/81185.html

相關(guān)文章

  • laravel5.5手寫(xiě)教程4Eloquent ORM分頁(yè)及軟刪除

    摘要:從而達(dá)到了軟刪除。不過(guò),你可以通過(guò)在查詢中調(diào)用方法來(lái)強(qiáng)制查詢已被軟刪除的模型方法也可以被用在關(guān)聯(lián)查詢只取出軟刪除數(shù)據(jù)會(huì)只取出軟刪除數(shù)據(jù)恢復(fù)被軟刪除的模型有時(shí)候你可能希望取消刪除一個(gè)已被軟刪除的模型。 Laravel 有三寶,路由、容器和 Eloquent ORM,Eloquent ORM。我個(gè)人一直比較推薦于在實(shí)際操作中學(xué)習(xí),之前簡(jiǎn)單了解了路由和Eloquent ORM的基本用法,今天...

    mindwind 評(píng)論0 收藏0
  • 同源策略與CORS跨域

    摘要:所以瀏覽器認(rèn)為這是安全的。如果你細(xì)心的話你會(huì)發(fā)現(xiàn),其實(shí)請(qǐng)求已經(jīng)發(fā)送出去了,你只是拿不到響應(yīng)而已。所以瀏覽器這個(gè)策略的本質(zhì)是,一個(gè)域名的,在未經(jīng)允許的情況下,不得讀取另一個(gè)域名的內(nèi)容。但瀏覽器并不阻止你向另一個(gè)域名發(fā)送請(qǐng)求。 同源策略與CORS跨域 PS:這篇文章是緊接著JSONP原理和Ajax學(xué)習(xí)與理解寫(xiě)的,有些內(nèi)容是承接了上兩篇文章.這篇文章只算是我的個(gè)人學(xué)習(xí)筆記,內(nèi)容沒(méi)有經(jīng)過(guò)精心排...

    ninefive 評(píng)論0 收藏0
  • 手寫(xiě) AJAX

    摘要:在事件中,我們規(guī)定當(dāng)服務(wù)器響應(yīng)已做好被處理的準(zhǔn)備時(shí)所執(zhí)行的任務(wù)。當(dāng)?shù)扔谇覡顟B(tài)為時(shí),表示響應(yīng)已就緒完整版可以加個(gè)簡(jiǎn)化版看前面的就行了請(qǐng)求成功看前面的就行了 在 onreadystatechange 事件中,我們規(guī)定當(dāng)服務(wù)器響應(yīng)已做好被處理的準(zhǔn)備時(shí)所執(zhí)行的任務(wù)。當(dāng) readyState 等于 4 且狀態(tài)為 200 時(shí),表示響應(yīng)已就緒: //完整版 var request = new XM...

    brianway 評(píng)論0 收藏0
  • 前端基礎(chǔ)匯總

    摘要:及相關(guān)問(wèn)題數(shù)據(jù)類(lèi)型函數(shù)中指向原型作用域閉包面向?qū)ο髮?duì)象創(chuàng)建模式繼承嚴(yán)格模式與對(duì)象轉(zhuǎn)換的方法添加屬性,根據(jù)原型創(chuàng)建區(qū)別新特性解構(gòu)賦值簡(jiǎn)化對(duì)象寫(xiě)法剪頭函數(shù)三點(diǎn)運(yùn)算符模板字符串形參默認(rèn)值異步過(guò)程深拷貝與淺拷貝賦值與淺拷貝的區(qū)別淺拷貝的幾種方法實(shí)現(xiàn) js及es相關(guān)問(wèn)題 數(shù)據(jù)類(lèi)型函數(shù)中this指向——————原型作用域閉包——————面向?qū)ο髮?duì)象創(chuàng)建模式繼承——————Es5嚴(yán)格模式Json與j...

    2json 評(píng)論0 收藏0
  • 前端基礎(chǔ)匯總

    摘要:及相關(guān)問(wèn)題數(shù)據(jù)類(lèi)型函數(shù)中指向原型作用域閉包面向?qū)ο髮?duì)象創(chuàng)建模式繼承嚴(yán)格模式與對(duì)象轉(zhuǎn)換的方法添加屬性,根據(jù)原型創(chuàng)建區(qū)別新特性解構(gòu)賦值簡(jiǎn)化對(duì)象寫(xiě)法剪頭函數(shù)三點(diǎn)運(yùn)算符模板字符串形參默認(rèn)值異步過(guò)程深拷貝與淺拷貝賦值與淺拷貝的區(qū)別淺拷貝的幾種方法實(shí)現(xiàn) js及es相關(guān)問(wèn)題 數(shù)據(jù)類(lèi)型函數(shù)中this指向——————原型作用域閉包——————面向?qū)ο髮?duì)象創(chuàng)建模式繼承——————Es5嚴(yán)格模式Json與j...

    laznrbfe 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<