成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

Ajax與Comet-JavaScript高級(jí)程序設(shè)計(jì)第21章讀書(shū)筆記(1)

imingyu / 1878人閱讀

摘要:技術(shù)的核心是對(duì)象即。收到響應(yīng)后,響應(yīng)的數(shù)據(jù)會(huì)自動(dòng)填充對(duì)象的屬性,相關(guān)的屬性有作為響應(yīng)主體被返回的文本。收到響應(yīng)后,一般來(lái)說(shuō),會(huì)先判斷是否為,這是此次請(qǐng)求成功的標(biāo)志。中的版本會(huì)將設(shè)置為,而中原生的則會(huì)將規(guī)范化為。會(huì)在取得時(shí)報(bào)告的值為。

Ajax(Asynchronous Javascript + XML)技術(shù)的核心是XMLHttpRequest對(duì)象,即: XHR。雖然名字中包含XML,但它所指的僅僅是這種無(wú)須刷新頁(yè)面即可從服務(wù)器端獲取數(shù)據(jù)的技術(shù),其通信與數(shù)據(jù)格式無(wú)關(guān),并不一定是XML數(shù)據(jù)。

XMLHttpRequest對(duì)象

IE7+、Firefox、Opera、Chrome 和 Safari 都支持原生的XHR對(duì)象。我們可以直接使用XMLHttpRequest構(gòu)造函數(shù)來(lái)創(chuàng)建XHR對(duì)象。

var xhr = new XMLHttpRequest();

雖然,IE7之前版本的瀏覽器中,創(chuàng)建xhr的方法與此有所不同,但是,前端技術(shù)發(fā)展到今天,已經(jīng)很少有業(yè)務(wù)需求是要支持IE7之前的版本了。因此,這里我略過(guò)這一情況。

XHR的用法

使用 XHR對(duì)象的時(shí)候,要調(diào)用的第一個(gè)方法是open(),它接受3個(gè)參數(shù):

要發(fā)送請(qǐng)求的類(lèi)型,如: get/post

請(qǐng)求的url

是否異步發(fā)送請(qǐng)求,這個(gè)參數(shù)是一個(gè)布爾值

xhr.open("get", "example.php", false)

注意:open()方法的調(diào)用并不會(huì)真正發(fā)送請(qǐng)求,僅僅是啟動(dòng)一個(gè)請(qǐng)求以備發(fā)送!

另外,只能向同一個(gè)域中使用相同端口和協(xié)議的URL發(fā)送請(qǐng)求,否則,會(huì)出現(xiàn)錯(cuò)誤。

在執(zhí)行open()方法之后,必須再調(diào)用send()方法,才會(huì)真正發(fā)起ajax請(qǐng)求。

xhr.open("get", "example.txt", false);
xhr.send(null);

send()方法接收一個(gè)參數(shù),即:要作為請(qǐng)求主體發(fā)送的數(shù)據(jù)。如果不需要發(fā)送數(shù)據(jù),那么必須傳入null,因?yàn)樵搮?shù)對(duì)于部分瀏覽器而言是必需的。

本例中的請(qǐng)求是同步的,Javascript代碼會(huì)等到服務(wù)器響應(yīng)之后再執(zhí)行。
收到響應(yīng)后,響應(yīng)的數(shù)據(jù)會(huì)自動(dòng)填充XHR對(duì)象的屬性,相關(guān)的屬性有:

responseText: 作為響應(yīng)主體被返回的文本。

responseXML: 如果響應(yīng)的內(nèi)容類(lèi)型是"text/xml"或者"application/xml",那么這個(gè)屬性中將保存著包含響應(yīng)數(shù)據(jù)的XML DOM文檔。

status: 響應(yīng)的HTTP狀態(tài)

statusText: HTTP狀態(tài)的說(shuō)明

無(wú)論內(nèi)容類(lèi)型是什么,響應(yīng)主體的內(nèi)容都會(huì)保存到responseText屬性中,而對(duì)于非XML數(shù)據(jù)而言,responseXML 屬性的值將會(huì)是null。

收到響應(yīng)后,一般來(lái)說(shuō),會(huì)先判斷 status 是否為200,這是此次請(qǐng)求成功的標(biāo)志。此時(shí),responseText屬性的內(nèi)容已經(jīng)就緒,而且在內(nèi)容類(lèi)型正確的情況下,responseXML也能夠訪問(wèn)了。
另外,狀態(tài)碼status如果是304,那么表示請(qǐng)求的資源沒(méi)有被修改,可以直接使用瀏覽器中的緩存,當(dāng)然,這樣的響應(yīng)也是有效的。

if( (xhr.status >= 200 && xhr.status < 300) || xhr.status == 304 ){
    alert(xhr.responseText);
}
else{
    alert("fail! status:" + xhr.status);
}

有的瀏覽器會(huì)錯(cuò)誤地報(bào)告 204 的狀態(tài)代碼。IE中 XHR 的ActiveX版本會(huì)將204設(shè)置為1223,而IE中原生的 XHR 則會(huì)將 204 規(guī)范化為 200。Opera會(huì)在取得204時(shí)報(bào)告 status的值為0。

參考文章:http://www.4455q.com/ajax-com...

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/82924.html

相關(guān)文章

  • 《Head First JavaScript》讀書(shū)筆記

    摘要:設(shè)定的值的時(shí)候,即已自動(dòng)暗示類(lèi)型。第五章循環(huán)自我重復(fù)的風(fēng)險(xiǎn)數(shù)組用于在單一場(chǎng)所存儲(chǔ)多段數(shù)據(jù)數(shù)組的頁(yè)碼稱(chēng)為鍵,索引只是一種形式特殊的鍵,它是數(shù)值鍵存儲(chǔ)在數(shù)組里的數(shù)據(jù)不一定為相同類(lèi)型并不要求二維數(shù)組具有相同的行數(shù),但是最好保持一致。 ** 簡(jiǎn)介 **書(shū)名:《Head First JavaScript》中文譯名:《深入淺出JavaScript》著:Michael Morrison編譯:O’R...

    ztyzz 評(píng)論0 收藏0
  • 《JavaScript高級(jí)程序設(shè)計(jì)》(3版)讀書(shū)筆記 1~2

    摘要:表示應(yīng)該立即下載腳本,但不應(yīng)妨礙頁(yè)面中的其他操作可選。表示通過(guò)屬性指定的代碼的字符集。表示腳本可以延遲到文檔完全被解析和顯示之后再執(zhí)行。實(shí)際上,服務(wù)器在傳送文件時(shí)使用的類(lèi)型通常是,但在中設(shè)置這個(gè)值卻可能導(dǎo)致腳本被忽略。 第1章 JavaScript 簡(jiǎn)介 雖然JavaScript和ECMAScript通常被人們用來(lái)表達(dá)相同的含義,但JavaScript的含義比ECMA-262要多得多...

    Corwien 評(píng)論0 收藏0
  • 《JavaScript高級(jí)程序設(shè)計(jì)》(3版)讀書(shū)筆記 3

    摘要:本質(zhì)上是由一組無(wú)序名值對(duì)組成的。浮點(diǎn)數(shù)值的最高精度是位小數(shù),但在進(jìn)行計(jì)算時(shí)其精度遠(yuǎn)遠(yuǎn)不如證書(shū)。例如這是使用基于數(shù)值的浮點(diǎn)計(jì)算的通病,并非獨(dú)此一家數(shù)值范圍。 函數(shù)名不能使用關(guān)鍵字(typeof不行但typeOf可以,區(qū)分大小寫(xiě)) 標(biāo)識(shí)符就是指變量、函數(shù)、屬性的名字,或者函數(shù)的參數(shù)。 第一個(gè)字符必須是一個(gè)字母、下劃線(_)或者一個(gè)美元符號(hào)($) 其他字符可以是字母、下劃線、美元符號(hào)或...

    renweihub 評(píng)論0 收藏0
  • 《JavaScript高級(jí)程序設(shè)計(jì)》(3版)讀書(shū)筆記 4 變量、作用域和內(nèi)存問(wèn)題

    摘要:具體說(shuō)就是執(zhí)行流進(jìn)入下列任何一個(gè)語(yǔ)句時(shí),作用域鏈就會(huì)得到加長(zhǎng)語(yǔ)句的塊。如果局部環(huán)境中存在著同名的標(biāo)識(shí)符,就不會(huì)使用位于父環(huán)境中的標(biāo)識(shí)符訪問(wèn)局部變量要比訪問(wèn)全局變量更快,因?yàn)椴挥孟蛏纤阉髯饔糜蜴湣? 基本類(lèi)型和引用類(lèi)型的值 ECMAscript變量包含 基本類(lèi)型值和引用類(lèi)型值 基本類(lèi)型值值的是基本數(shù)據(jù)類(lèi)型:Undefined, Null, Boolean, Number, String ...

    lidashuang 評(píng)論0 收藏0
  • <javascript高級(jí)程序設(shè)計(jì)>十二讀書(shū)筆記----偏移量

    摘要:包括元素的高度上下內(nèi)邊距上下邊框值,如果元素的的值為那么該值為。該值為元素的包含元素。最后,所有這些偏移量都是只讀的,而且每次訪問(wèn)他們都需要重新計(jì)算。為了避免重復(fù)計(jì)算,可以將計(jì)算的值保存起來(lái),以提高性能。 offsetHeight 包括元素的高度、上下內(nèi)邊距、上下邊框值,如果元素的style.display的值為none,那么該值為0。offsetWidth 包括元素的寬度、左...

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

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

0條評(píng)論

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