你怎麼用最通俗的話解釋AJAX是什麼東西?
最後更新:2016-06-17
來源:互聯網
上載者:User
回複內容: 太通俗太形象毫無意義,只會讓不懂的人更不懂。
直白地說,就是沒用AJAX的網頁,你點一個按鈕就要重新整理一下頁面,儘管新頁面上只有一行字和當前頁面不一樣,但你還是要無聊地等待頁面重新整理。
用了AJAX之後,你點擊,然後頁面上的一行字就變化了,頁面本身不用刷。
AJAX只是一種技術,不是某種具體的東西。不同的瀏覽器有自己實現AJAX的組件。
=====================================
突然想讓這個答案更加完美,所以補充一下下面的內容:
ajax的全稱是
A
synchronous
J
avascript
+ X
ML。
非同步傳輸+js+xml。
所謂非同步,在這裡簡單地解釋就是:向伺服器發送請求的時候,我們不必等待結果,而是可以同時做其他的事情,等到有了結果我們可以再來處理這個事。(當然,在其他語境下這個解釋可能就不對了)
這個很重要,如果不是這樣的話,我們點完按鈕,頁面就會死在那裡,其他的資料請求不會往下走了。這樣比等待重新整理似乎更加討厭。
(雖然提供非同步通訊功能的組件預設情況下都是非同步,但它們也提供了同步選項,如果你好奇把那個選項改為false的話,你的頁面就會死在那裡)
xml只是一種資料格式,在這件事裡並不重要,我們在更新一行字的時候理論上說不需要這個格式,但如果我們更新很多內容,那麼格式化的資料可以使我們有條理地去實現更新。
現在大部分人其實是用JSON這種格式來代替XML的,因為前者更加簡潔,據說目前的解析速度也更快。多快好省,能省則省啊。
總結:只要是JS調用非同步通訊群組件並使用格式化的資料來更新web頁面上的內容或操作過程,那麼我們用的方法就可算是AJAX。 局部重新整理可以理解就是,以前向伺服器請求資源,必須對這個頁面資源進行請求以獲得這個資訊資源(以這個頁面資源為載體來攜帶資訊資源),這必然會對頁面進行重新整理(因為是請求伺服器後會同步返回一個頁面進行重新整理)。
現在頁面可以通過瀏覽器指令碼程式設計語言調用一個隱藏請求裝置(也就是XMLHttpRequest),由這個請求向伺服器請求資源,然後返回一個資源載體(可能是一個頁面,也可能是一個xml或json文段),然後由程式設計語言去處理這個資訊。與此同時,
頁面是不會發生重新整理行為的 (也就是沒有向伺服器請求這個頁面資源)。這就是非同步原理了。
“AJA”就是非同步JavaScript的縮寫,其基礎就是瀏覽器指令碼程式設計語言JavaScript和XMLHttpRequest對象,X就是作為資訊載體的XML,不過現在多數用JSON代替(xml解釋麻煩,json是JavaScript的子類,容易在JavaScript裡處理)。A=非同步
J=JavaScript
A=and
X=XML
使用AJAX的網頁,內容是
非同步 載入的。
沒有使用AJAX的網頁,在網頁完全開啟的時候,載入就完成了。
除非重新整理或重新載入這個網頁,瀏覽器不會再向伺服器發出請求,內容也不會再發生變化。
以查看某支股票的股價為例。
過去沒有AJAX時,網頁會10秒定時重新整理。
使用AJAX,只需要改變很小一部分內容就好可以了(甚至只是幾個數字)。
資料量明顯減少,對降低伺服器端負載、縮短使用者端等待時間都有好處。
A:非同步,已經解釋過。
J:瀏覽器端程式設計語言中,JavaScript是絕對的主導地位。
A:並列關係。
X:在出現HTML5之前,當時很多網頁以XHTML為標準。XHTML基於XML。通過Javascript控制網頁內容,實際就是針對XML進行DOM操作。Ajax的全稱是Asynchronous JavaScript and XML 中文名稱定義為非同步JavaScript和XML。
Ajax是Web2.0技術的核心
由多種技術集合而成,使用Ajax技術不必重新整理整個頁面,只需對頁面的局部進行更新,可以節省網路頻寬,提高頁面的載入速度,從而縮短使用者等待時間,改善使用者體驗
我們傳統的web應用,當我們提交一個表單請求給伺服器,伺服器接收到請求之後,返回一個新的頁面給瀏覽器,這種做法浪費了很多頻寬,因為我們發送請求之前和獲得的新頁面兩者中很多的html代碼是相同的,由於每次使用者的互動都需要向伺服器發送請求,應用的訪問時間取決於伺服器的返回時間。而我們使用Ajax就不同了,Ajax只取回一些必須的資料,它使用SOAP、XML或者支援json 的Web Service介面,我們在用戶端利用JavaScript處理來自伺服器的響應,這樣用戶端和伺服器之間的資料互動就減少了,然後使用者請求就得到了加速。
Ajax是多種技術的組合,包括我們的JavaScript 非同步資料擷取技術,就是XMLHttpRequest
以及xml以及Dom還有表現技術XHTML 和CSS
Ajax的核心是XMLHttpRequest 是支援非同步請求的技術,可以發送請求給伺服器,並且不阻塞使用者
在IE瀏覽器中首次引用,使我們的網路應用更加強大。
其實XMLHttpRequest是JavaScript的一種文法子集,是它的一套API,支援發送GET和POST請求。
該API是Ajax開發的核心,也是現在web技術的核心之一。
通過這些技術,我們無序重新載入網頁就可以發送和取回資料,完成互動。如你剛開始學習網頁製做,一個頁面一個頁面的轉跳,開新視窗,輸入,關閉,原視窗要手動或自動的重新整理。相比現在流行的網頁很low是不是。
現在我寫個回答,發布,頁面不用完全重新整理,直接加在頁面下方,是不是感覺體驗好了些?
ajax,非同步javascript和xml,就是不關閉不轉跳不重新整理的情況下,在網頁後台提交資料,部分更新頁面內容,將網頁的使用者體驗提升到接近原生程式的地步。高端複雜點的甚至實現了單頁app的程度。第一次下載可能慢點,但以後操作只與伺服器交換關鍵資料,減輕伺服器負擔同時也提高了用戶端啟動並執行流暢性。大學畢業拍畢業照,全班30人,一共去了29人。可是拍完之後,沒參與照相的同學也想出現在照片中,該怎麼辦呢?
傳統方式:大家再召集一次,重新拍一張。
Ajax:把這名同學PS進去
這就是Ajax的特點:
可以在不重新召集所有同學拍照的情況下,對照片的部分進行更新。
可以在不重新載入整個網頁的情況下,對網頁的某部分進行更新。
(重新拍照理解為重新載入網頁)
這能夠協助你理解Ajax的特點,涉及具體的技術內容還得系統學習。不用AJAX:你要看到天空,得跑到房子外面去看
使用AJAX:開啟窗戶就能看到天空,不用跑到外面去就是網頁就像一棟樓,你覺得不滿意,要開個窗戶你需要的就是再造個窗戶(請求新資料並載入出來)而不需要重新再蓋一棟樓
是什麼 ,可自行wiki。AJAX
1.沒用ajax :瀏覽器訪問伺服器請求,使用者看得到(頁面重新整理也就等同於重新發請求,重新整理看得到,也就等同於請求看得到)。等請求完,頁面重新整理,新內容出現,使用者看到新內容。
2.用ajax :瀏覽器訪問伺服器請求,使用者看不到,是悄悄進行。等請求完,頁面不重新整理,新內容也會出現,使用者看到新內容。
1和2區別: 都是發請求給伺服器,都會看到新內容,只是一個是悄悄發。
用ajax好處 :為了防止重新整理頁面,因為重新整理頁面的時間一般都是需要巨長時間,而我們使用者討厭等待,如果哪天重新整理頁面的時間可以做到0.01秒,那也可以考慮不用ajax。