ajax的原理是什嗎?ajax的常用屬性和原理的分析(總結篇)

來源:互聯網
上載者:User
本篇文章主要的講述了關於ajax的自己一些總結,一些問題以及一些答案,希望能協助到大家。現在就讓我們一起來看這篇文章吧

首先ajax是Asynchronous JavaScript and XML的全稱,Asynchronous是非同步意思,這跟傳統的web不同。

什麼是同步什麼是非同步?

同步,是發送方發送資料之後,必須等接收方接收資料必須做出回應之後,才可以進行下一步。

非同步話則是發送方發送資料之後不需等接收方做出回應,可以進行下一步操作。

舉個形象的例子,同步就像A叫B去吃飯,A發出邀請,要B一起吃飯,此時必須等B做出回應,吃或者不吃,A才決定是一個人吃還是等B一起去;而非同步話就像是下班了,A跟B說A要去吃飯了,然後走了,不管B是否做任何回應。

Ajax原理

簡單來說,就是通過XMLHttpRequest對象像伺服器發送非同步請求,從伺服器擷取資料之後,再通過JS來操作DOM節點。

XMLHttpRequest對象

方法:

1.open(請求類型,url,布爾值)

2.send()參數為作為請求主體發送的資料,如果不需要請求主體發送資料,則傳入null

3.abort()取消非同步請求

4.getAllResponseHeaders()把HTTP請求的所有響應首部作為鍵/值對返回

5.getResponseHeader("header")返回指定首部的串值

6.setRequestHeader("header", "value")把指定首部設定為所提供的值。在設定任何首部之前必須先調用open()。設定header並和請求一起發送 ('post'方法一定要 )

ajax的常用屬性:

1.readyState 表示請求/響應過程的當前活動階段(0:未初始化,尚未調用open方法;1:啟動,已調用open方法,未調用send方法;2:發送:已調用send,未接到響應;3:接收,已經接收部分響應資料;4.完成,可以在用戶端使用)

2.onreadystatechange readyState的值改變一次就會調用一次這個方法(想看更多就到topic.alibabacloud.comAJAX開發手冊欄目中學習)

3.responseText 作為響應主體被返回的文本

4.responseXML 儲存響應類型為“text/xml”或"application/xml"的響應資料的XML DOM文檔

5.status 響應的HTTP狀態

6.statusText Http狀態的說明

下面建立一個XHR對象:

function createXHR(){if(typeof XMLHttpRequest != "undefined"){return new XMLHttprequest();}else if(typeof ActiveXObject != "undefined"){if(typeof arguments.callee.sctiveXString != "string"){var versions = ["MSXML2.XMLHttp.6.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp"],i,len;for(i =0;i<versions.length;i<len;i++){try{new ActiveXObject(versions[i]);arguments.callee.activeXString = versions[i];break;}catch(ex){跳過}}}return new ActiveXObject(arguments.callee.activeXString);}else{throw new Error("No XHR object available");}}var xhr = createXHR();xhr.onreadyststechange = function(){if(xhr.readyState == 4){if((xhr.status >= 200 && xhr.status <300) || 304){alert(xhr.responseText);}else{alert("請求位成功"+ xhr.status);}}};xhr.open("get","aaa.txt",true);xhr.send(null);

ajax優點:

1.無重新整理更新資料,減少使用者等到時間,更好的使用者體驗

2.非同步與伺服器通訊,無需打斷使用者,響應更加迅速

3.可以把伺服器的一些負擔轉到用戶端,利用用戶端閑置的能力來處理,減輕伺服器和頻寬的負擔,節約空間和寬頻租用成本。並且減輕伺服器的負擔,AJAX的原則是“按需取資料”,可以最大程度的減少冗餘請求和響應對伺服器造成的負擔,提升網站效能。

5.基於標準化,廣泛被支援

ajax缺點

1.破壞了前進後退功能,使用者往往通過後退按鈕來取消上一步操作,但是使用ajax無法實現。可以使用Gmail來解決這個問題,它只是採用的一個比較笨但是有效辦法,即使用者單擊後退按鈕訪問記錄時,通過建立或使用一個隱藏的IFRAME來重現頁面上的變更。

2.安全問題。ajax技術就如同對企業資料建立了一個直接通道。這使得開發人員在不經意間會暴露比以前更多的資料和伺服器邏輯。ajax的邏輯可以對用戶端的安全掃描技術隱藏起來,允許駭客從遠端伺服器上建立新的攻擊。還有自身受到如跨站指令碼攻擊,SQL注入等攻擊。

3.對搜尋引擎支援較弱

4.一些手持功能不能很好的支援等

本篇文章到這就結束了(想看更多就到topic.alibabacloud.comAJAX使用手冊欄目中學習),有問題的可以在下方留言提問。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.