天天看點

2019面試題:簡單介紹下Ajax

首先Ajax是Asynchronous JavaScript and XML的全稱,Asynchronous是異步的意思,這跟傳統的web不同。Ajax是Web2.0技術的核心由多種技術集合而成,使用Ajax技術不必重新整理整個頁面,隻需對頁面的局部進行更新,可以節省網絡帶寬,提高頁面的加載速度,進而縮短使用者等待時間,改善使用者體驗。

什麼是同步?什麼是異步?

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

直白地說,就是沒用Ajax的網頁,你點一個按鈕就要重新整理一下頁面,盡管新頁面上隻有一行字和目前頁面不一樣,但你還是要無聊地等待頁面重新整理。用了AJAX之後,你點選,然後頁面上的一行字就變化了,頁面本身不用刷。

Ajax隻是一種技術,不是某種具體的東西。不同的浏覽器有自己實作AJAX的元件。我們傳統的web應用,當我們送出一個表單請求給伺服器,伺服器接收到請求之後,傳回一個新的頁面給浏覽器,這種做法浪費了很多帶寬,因為我們發送請求之前和獲得的新頁面兩者中很多的html代碼是相同的,由于每次使用者的互動都需要向伺服器發送請求,應用的通路時間取決于伺服器的傳回時間。而我們使用Ajax就不同了,Ajax隻取回一些必須的資料,它使用SOAP、XML或者支援json 的Web Service接口,我們在用戶端利用JavaScript處理來自伺服器的響應,這樣用戶端和伺服器之間的資料互動就減少了,然後使用者請求就得到了加速。Ajax是多種技術的組合,包括我們JavaScript異步資料擷取技術,就是XMLHttpRequest以及xml以及Dom還有表現技術XHTML 和CSSAjax的核心是XMLHttpRequest 是支援異步請求的技術,可以發送請求給伺服器,并且不阻塞使用者在IE浏覽器中首次引用,使我們的網絡應用更加強大。其實XMLHttpRequest是JavaScript的一種文法子集,是它的一套API,支援發送GET和POST請求。該API是Ajax開發的核心,也是現在web技術的核心之一。通過這些技術,我們無序重新加載網頁就可以發送和取回資料,完成互動。

Ajax優點:

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

2.異步與伺服器通信,無需打斷使用者,響應更加迅速。

3.把伺服器的一些負擔轉到用戶端,利用用戶端閑置的能力來處理,減輕伺服器和帶寬的負擔,節約空間和寬帶租用成本。

4.Ajax的原則是“按需取資料”,可以最大程度的減少備援請求和響應對伺服器造成的負擔,提升站點性能。

5.基于标準化,廣泛被支援。           

複制

Ajax缺點:

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

2.安全問題。ajax的邏輯可以對用戶端的安全掃描技術隐藏起來,允許黑客從遠端伺服器上建立新的攻擊。還有自身受到如跨站腳本攻擊,SQL注入等攻擊。

3.對搜尋引擎支援較弱。

4.一些手持裝置不能很好的支援等。           

複制