摘要:技術的核心是對象即。收到響應后,響應的數據會自動填充對象的屬性,相關的屬性有作為響應主體被返回的文本。收到響應后,一般來說,會先判斷是否為,這是此次請求成功的標志。中的版本會將設置為,而中原生的則會將規范化為。會在取得時報告的值為。
Ajax(Asynchronous Javascript + XML)技術的核心是XMLHttpRequest對象,即: XHR。雖然名字中包含XML,但它所指的僅僅是這種無須刷新頁面即可從服務器端獲取數據的技術,其通信與數據格式無關,并不一定是XML數據。
XMLHttpRequest對象IE7+、Firefox、Opera、Chrome 和 Safari 都支持原生的XHR對象。我們可以直接使用XMLHttpRequest構造函數來創建XHR對象。
var xhr = new XMLHttpRequest();
雖然,IE7之前版本的瀏覽器中,創建xhr的方法與此有所不同,但是,前端技術發展到今天,已經很少有業務需求是要支持IE7之前的版本了。因此,這里我略過這一情況。
XHR的用法使用 XHR對象的時候,要調用的第一個方法是open(),它接受3個參數:
要發送請求的類型,如: get/post
請求的url
是否異步發送請求,這個參數是一個布爾值
xhr.open("get", "example.php", false)
注意:open()方法的調用并不會真正發送請求,僅僅是啟動一個請求以備發送!
另外,只能向同一個域中使用相同端口和協議的URL發送請求,否則,會出現錯誤。
在執行open()方法之后,必須再調用send()方法,才會真正發起ajax請求。
xhr.open("get", "example.txt", false); xhr.send(null);
send()方法接收一個參數,即:要作為請求主體發送的數據。如果不需要發送數據,那么必須傳入null,因為該參數對于部分瀏覽器而言是必需的。
本例中的請求是同步的,Javascript代碼會等到服務器響應之后再執行。
收到響應后,響應的數據會自動填充XHR對象的屬性,相關的屬性有:
responseText: 作為響應主體被返回的文本。
responseXML: 如果響應的內容類型是"text/xml"或者"application/xml",那么這個屬性中將保存著包含響應數據的XML DOM文檔。
status: 響應的HTTP狀態
statusText: HTTP狀態的說明
無論內容類型是什么,響應主體的內容都會保存到responseText屬性中,而對于非XML數據而言,responseXML 屬性的值將會是null。
收到響應后,一般來說,會先判斷 status 是否為200,這是此次請求成功的標志。此時,responseText屬性的內容已經就緒,而且在內容類型正確的情況下,responseXML也能夠訪問了。
另外,狀態碼status如果是304,那么表示請求的資源沒有被修改,可以直接使用瀏覽器中的緩存,當然,這樣的響應也是有效的。
if( (xhr.status >= 200 && xhr.status < 300) || xhr.status == 304 ){ alert(xhr.responseText); } else{ alert("fail! status:" + xhr.status); }
有的瀏覽器會錯誤地報告 204 的狀態代碼。IE中 XHR 的ActiveX版本會將204設置為1223,而IE中原生的 XHR 則會將 204 規范化為 200。Opera會在取得204時報告 status的值為0。
參考文章:http://www.4455q.com/ajax-com...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/82924.html
摘要:設定的值的時候,即已自動暗示類型。第五章循環自我重復的風險數組用于在單一場所存儲多段數據數組的頁碼稱為鍵,索引只是一種形式特殊的鍵,它是數值鍵存儲在數組里的數據不一定為相同類型并不要求二維數組具有相同的行數,但是最好保持一致。 ** 簡介 **書名:《Head First JavaScript》中文譯名:《深入淺出JavaScript》著:Michael Morrison編譯:O’R...
摘要:表示應該立即下載腳本,但不應妨礙頁面中的其他操作可選。表示通過屬性指定的代碼的字符集。表示腳本可以延遲到文檔完全被解析和顯示之后再執行。實際上,服務器在傳送文件時使用的類型通常是,但在中設置這個值卻可能導致腳本被忽略。 第1章 JavaScript 簡介 雖然JavaScript和ECMAScript通常被人們用來表達相同的含義,但JavaScript的含義比ECMA-262要多得多...
摘要:本質上是由一組無序名值對組成的。浮點數值的最高精度是位小數,但在進行計算時其精度遠遠不如證書。例如這是使用基于數值的浮點計算的通病,并非獨此一家數值范圍。 函數名不能使用關鍵字(typeof不行但typeOf可以,區分大小寫) 標識符就是指變量、函數、屬性的名字,或者函數的參數。 第一個字符必須是一個字母、下劃線(_)或者一個美元符號($) 其他字符可以是字母、下劃線、美元符號或...
摘要:具體說就是執行流進入下列任何一個語句時,作用域鏈就會得到加長語句的塊。如果局部環境中存在著同名的標識符,就不會使用位于父環境中的標識符訪問局部變量要比訪問全局變量更快,因為不用向上搜索作用域鏈。 基本類型和引用類型的值 ECMAscript變量包含 基本類型值和引用類型值 基本類型值值的是基本數據類型:Undefined, Null, Boolean, Number, String ...
摘要:包括元素的高度上下內邊距上下邊框值,如果元素的的值為那么該值為。該值為元素的包含元素。最后,所有這些偏移量都是只讀的,而且每次訪問他們都需要重新計算。為了避免重復計算,可以將計算的值保存起來,以提高性能。 offsetHeight 包括元素的高度、上下內邊距、上下邊框值,如果元素的style.display的值為none,那么該值為0。offsetWidth 包括元素的寬度、左...
閱讀 725·2021-11-17 09:33
閱讀 3757·2021-09-01 10:46
閱讀 1751·2019-08-30 11:02
閱讀 3280·2019-08-29 15:05
閱讀 1396·2019-08-26 11:39
閱讀 2272·2019-08-23 17:04
閱讀 1973·2019-08-23 15:43
閱讀 1371·2019-08-23 14:12