你怎麼用最通俗的話解釋AJAX是什麼東西?


太通俗太形象毫無意義,只會讓不懂的人更不懂。

直白地說,就是沒用AJAX的網頁,你點一個按鈕就要刷新一下頁面,儘管新頁面上只有一行字和當前頁面不一樣,但你還是要無聊地等待頁面刷新。

用了AJAX之後,你點擊,然後頁面上的一行字就變化了,頁面本身不用刷。

AJAX只是一種技術,不是某種具體的東西。不同的瀏覽器有自己實現AJAX的組件。

=====================================

突然想讓這個答案更加完美,所以補充一下下面的內容:
ajax的全稱是AsynchronousJavascript+XML。
非同步傳輸+js+xml。
所謂非同步,在這裡簡單地解釋就是:向伺服器發送請求的時候,我們不必等待結果,而是可以同時做其他的事情,等到有了結果我們可以再來處理這個事。(當然,在其他語境下這個解釋可能就不對了)
這個很重要,如果不是這樣的話,我們點完按鈕,頁面就會死在那裡,其他的數據請求不會往下走了。這樣比等待刷新似乎更加討厭。
(雖然提供非同步通訊功能的組件默認情況下都是非同步的,但它們也提供了同步選項,如果你好奇把那個選項改為false的話,你的頁面就會死在那裡)
xml只是一種數據格式,在這件事里並不重要,我們在更新一行字的時候理論上說不需要這個格式,但如果我們更新很多內容,那麼格式化的數據可以使我們有條理地去實現更新。

現在大部分人其實是用JSON這種格式來代替XML的,因為前者更加簡潔,據說目前的解析速度也更快。多快好省,能省則省啊。

總結:只要是JS調用非同步通訊組件並使用格式化的數據來更新web頁面上的內容或操作過程,那麼我們用的方法就可算是AJAX。


如你剛開始學習網頁製做,一個頁面一個頁面的轉跳,開新窗口,輸入,關閉,原窗口要手動或自動的刷新。相比現在流行的網頁很low是不是。

現在我寫個回答,發布,頁面不用完全刷新,直接加在頁面下方,是不是感覺體驗好了些?

ajax,非同步javascript和xml,就是不關閉不轉跳不刷新的情況下,在網頁後台提交數據,部分更新頁面內容,將網頁的用戶體驗提升到接近原生程序的地步。高端複雜點的甚至實現了單頁app的程度。第一次下載可能慢點,但以後操作只與伺服器交換關鍵數據,減輕伺服器負擔同時也提高了客戶端運行的流暢性。


大學畢業拍畢業照,全班30人,一共去了29人。可是拍完之後,沒參與照相的同學也想出現在照片中,該怎麼辦呢?

傳統方式:大家再召集一次,重新拍一張。

Ajax:把這名同學PS進去

這就是Ajax的特點:


可以在不重新召集所有同學拍照的情況下,對照片的部分進行更新。


可以在不重新載入整個網頁的情況下,對網頁的某部分進行更新。
(重新拍照理解為重新載入網頁)

這能夠幫助你理解Ajax的特點,涉及具體的技術內容還得系統學習。


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技術的核心之一。
通過這些技術,我們無序重新載入網頁就可以發送和取回數據,完成交互。


局部刷新


可以理解就是,以前向伺服器請求資源,必須對這個頁面資源進行請求以獲得這個信息資源(以這個頁面資源為載體來攜帶信息資源),這必然會對頁面進行刷新(因為是請求伺服器後會同步返回一個頁面進行刷新)。
現在頁面可以通過瀏覽器腳本編程語言調用一個隱藏請求裝置(也就是XMLHttpRequest),由這個請求向伺服器請求資源,然後返回一個資源載體(可能是一個頁面,也可能是一個xml或json文段),然後由編程語言去處理這個信息。與此同時,頁面是不會發生刷新行為的(也就是沒有向伺服器請求這個頁面資源)。這就是非同步原理了。

「AJA」就是非同步JavaScript的縮寫,其基礎就是瀏覽器腳本編程語言JavaScript和XMLHttpRequest對象,X就是作為信息載體的XML,不過現在多數用JSON代替(xml解釋麻煩,json是JavaScript的子類,容易在JavaScript里處理)。


一位小哥進廁所產翔,並且產完了
想擦PP,結果發現沒有紙。

那麼有以下兩種情況:

  1. 不顧PP的感受自己跑出廁所怒買一捲紙回來再擦一遍。 (傳統方式)
  2. 打電話讓基友送一捲紙從門口遞進來。 (Ajax)

簡單來說。屁股不用挪就拿到手紙就算Ajax,自己抬屁股取完了再坐回來就是傳統方式。


不用AJAX:你要看到天空,得跑到房子外面去看
使用AJAX:打開窗戶就能看到天空,不用跑到外面去


哇!所有的操作都在一個網頁里,So Cool!


AJAX 是用於客戶端創建非同步 Web 應用的一組相關的 Web 開發技術。簡單的說, 它涉及到以下各種技術: HTML, DOM, XML, XMLHttpRequest, Javascript, JSON .


是什麼,可自行wiki。AJAX

1.沒用ajax:瀏覽器訪問伺服器請求,用戶看得到(頁面刷新也就等同於重新發請求,刷新看得到,也就等同於請求看得到)。等請求完,頁面刷新,新內容出現,用戶看到新內容。

2.用ajax:瀏覽器訪問伺服器請求,用戶看不到,是悄悄進行。等請求完,頁面不刷新,新內容也會出現,用戶看到新內容。

1和2區別:都是發請求給伺服器,都會看到新內容,只是一個是悄悄發。

用ajax好處:為了防止刷新頁面,因為刷新頁面的時間一般都是需要巨長時間,而我們用戶討厭等待,如果哪天刷新頁面的時間可以做到0.01秒,那也可以考慮不用ajax。


你寫了一篇作文,發現裡面有一個段落不滿意,於是拿鉛筆擦擦掉這個段落重新寫,其他已經寫好的不用再重新寫了,就是ajax。為了改這個段落把整篇文章重新寫一次,就是傳統的方法。


就是網頁就像一棟樓,你覺得不滿意,要開個窗戶你需要的就是再造個窗戶(請求新數據並載入出來)而不需要重新再蓋一棟樓


用與不用AJAX的區別,類似於活字印刷與雕版印刷的區別。


訪問某個網址會出一段html的文本明白么?
然後這段html裡面有段js能運行明白么?
這段js又能訪問另一個網址,這個網址會出一段新的文本明白么?
拿到新的文本就能用js接著處理了,都明白了吧。


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通俗點說就是不在網頁刷新的前提下進行內容的更新。就拿上面哥們說的點贊,當你點贊的時候,網頁並沒有刷新,但是數據發生了變化。再比如說,我正在這裡寫答案,在文本域左下角有個

這其實也是ajax的技術,還有我們正在這裡看問題,此刻網頁提醒有人回復了我,你明白了吧,大家明白了吧,這也就是為什麼這幾年ajax這麼火的原因,不用重新載入頁面就能讓你發現那裡有變化,那裡有更新……


以我的理解來說:在不切換頁面的情況下完成非同步的HTTP請求。

該懂的人已經懂了,不該懂的說的再通俗也不懂....


最通俗Ajax就是一個人,客戶端告訴他馬上給我去那個(域名)伺服器拿符合這幾個條件(參數)的數據來,這個人就屁顛屁顛就去了,伺服器看了一下條件給找出來了數據並給了他,他又屁顛屁顛回去把拿到的數據給了客戶端,有時候客戶端不小心把伺服器地址給錯了,這個人屁顛屁顛按地址去了結果沒找到伺服器就屁顛屁顛回來,告訴客戶端沒有找到伺服器。有時候能他去了伺服器那邊,伺服器生病了(伺服器端程序出錯了)不能幫他找數據了,他就屁顛屁顛回去告訴客戶端,伺服器病了不能查詢數據了等等各種情況,總之他就是客戶端和伺服器端的傳話人。再來一個形象比喻飯店,老闆就是開發者,客人就是用戶,Ajax就是服務員,伺服器就是後廚,客人來吃飯,客人說服務員給我來一盤地三鮮蓋飯,服務員去告訴後廚做一份地三鮮蓋飯,客人在這個等著後廚做飯的過程內,可以去玩手機可以去上廁所可以去把妹子,過一會兒飯做好了服務員給客人端上來了,並告訴客人飯好了你可以吃了(返回200並且有值)。有時候呢後廚可能沒有地三鮮這個飯了,客人要地三鮮,服務員去後廚說做個地三鮮,後廚說沒有了,服務員回來告訴客人沒有地三鮮了(返回200但是返回為空)。有時候呢地三鮮有,做這個菜的廚師生病了,客人要地三鮮,服務員給後廚說做個地三鮮,後廚就說了廚師生病了,服務員告訴你後廚做不了(返回500服務端程序報錯)。有時候客人要了一個地三鮮結果等半天服務員沒給客人端上來,客人生氣了媽的等半小時還沒有端上來不吃了(超時)。如果沒有ajax了,你吃飯就得自己買菜自己做自己端,整個過程不能幹別的,干別的活兒那麼做飯就會被中斷,你就吃不上飯了。


手機碼字太費勁兒了。


屌絲足球狗以為是阿賈克斯。。。求摺疊


推薦閱讀:

PHP 的極限在哪裡?
kindeditor編輯器保存的文章帶html標籤,進行文章關鍵詞搜索如何排除標籤內容干擾?
PHP為什麼這麼難學?
你用PHP寫過哪些好玩的東西呢?
PHP 文件上傳安全需要注意哪些方面?

TAG:互聯網 | 程序員 | PHP | Ajax |