「不再學AJAX了」是一個與AJAX主題相關的文章系列,包含如下三個部分的內容:html
但願經過閱讀該系列三個部分的內容,你可以完全理解並掌握AJAX技術,今後不再用專門學習AJAX。程序員
讓咱們開始吧 ?。web
AJAX是「Asynchronous JavaScript And XML」的縮寫(即:異步的JavaScript和XML),是一種實現無頁面刷新獲取服務器數據的混合技術。json
讓咱們停下來好好思考一下這個定義,注意那些醒目的藍色文字,它們出如今那裏不是沒有理由的。跨域
好的,相信你已經對這個定義有些印象,如今讓我對那些藍色的文字作些說明:瀏覽器
XML是「Extensible Markup Language」的縮寫(即:可拓展標記語言),是一種特徵相似HTML,用來描述數據是什麼,並承載數據的標記語言,你能夠在中文的維基百科中看到更完整的解釋,但咱們如今只要知道它是一種用來承載數據的語言就足夠了。服務器
而JSON僅僅是一種數據格式,在JSON發明以前,人們大量使用XML做爲數據傳輸的載體,也正因如此,AJAX技術的最後一個字母爲「X」。而現在狀況則發生了些變化,JSON這種相似於字符串對象的輕量級的數據格式愈來愈受到開發者青睞,幾乎變成了AJAX技術的標準數據格式,所以好像AJAX技術現在應該換個名字,叫作「AJAJ」,呃,仍是算了吧。網絡
須要注意的是,JSON並非XML的替代品,二者各自有其適應的場景。若是你對這兩種數據格式的差別感興趣,能夠查看如下連接:數據結構
咱們知道,互聯網最主要的功能在於「資源交換」,當初發明互聯網的科學家們也是基於這個動機。雖然在互聯網中「資源交換」的主體都是計算機。但爲了方便交流,咱們一般將獲取資源的一方稱爲客戶端(主要的工具是瀏覽器),而將派發資源的一方稱爲服務端(又稱爲「服務器」)。異步
在AJAX技術出現以前,若是瀏覽器須要從服務器請求資源,其交互模式爲「客戶端發出請求 -> 服務端接收請求並返回相應HTML文檔 -> 頁面刷新,客戶端加載新的HTML文檔」。確實,這種交互模式十分簡潔明瞭,並且很是符合人的直覺,對於那時遊走於互聯網中的極客而言,也確實夠用了。可是隨着時代的進步,互聯網漸漸不僅是極客們的娛樂場,愈來愈多商業化網站的出現,使互聯網再也不侷限於知足人們「資源交換」的需求,人們開始期待可以在互聯網中得到更好的「使用體驗」,而隨着用戶點擊不斷刷新頁面的交互方式顯然很難討人喜歡。
再試想這樣一種情景,當用戶點擊頁面中的某個按鈕向服務器發送請求時,頁面本質上只是一些數據發生了變化,而此時服務器卻要將重繪的整個頁面再返回給瀏覽器加載,這顯然有悖於程序員的「DRY」原則,並且明明只是一些數據的變化卻迫使服務器要返回整個HTML文檔,這自己也會給網絡帶寬帶來沒必要要的開銷。
有沒有辦法在頁面數據變更時,只向服務器請求新的數據,而且在阻止頁面刷新的狀況下,動態的替換頁面中展現的數據呢? -- 答案正是「AJAX」。
AJAX技術的問世,不只經過阻止瀏覽器接受響應時刷新頁面提高了互聯網用戶的使用體驗,還使開發者可以以更加微觀的視角從新思考互聯網應用的構建,今後,開發者將在「數據」層面而不是「資源」層面以更高的自由度構建網站和Web應用。
是的,AJAX技術並不僅是操做XMLHttpRequest
對象發起異步請求,而是爲了實現「無頁面刷新的資源獲取」的一些列技術的統稱,這些技術包括了:
XMLHttpRequest
對象;明白AJAX並不僅是操做XMLHttpRequest
對象,對於初學者而言是十分必要的。
相信你已經明白了,AJAX技術的意義在於:它可以使瀏覽器在不刷新頁面的狀況下獲取服務器響應,這將大大提高互聯網用戶的使用體驗,同時,因爲AJAX請求獲取的是數據而不是HTML文檔,所以它也節省了網絡帶寬,讓互聯網用戶的網絡衝浪體驗變得更加順暢。
同時,咱們也應該注意到,因爲AJAX技術能夠令開發者只向服務器獲取數據(而不是圖片,HTML文檔等資源),互聯網資源的傳輸變得史無前例的輕量級和純粹,這激發了廣大開發者的創造力,使各式各樣功能強大的網絡站點,和互聯網應用如雨後春筍通常冒出,不斷帶給人驚喜。
本文咱們講解了「什麼是AJAX」以及「AJAX的意義」,你可能會以爲一篇技術文章沒有代碼實在很古怪,但我以爲在一開始就對某個概念創建起正確的心智模型很重要。它能夠幫助咱們爲以後概念細節的學習打下良好基礎。彆着急,在下一篇文章中,咱們會花費大量篇幅去討論如何使用AJAX技術,但願你保持耐心,Keep Learning,加油!?
? Hey!喜歡這篇文章嗎?別忘了在下方? 點贊讓我知道。