1. 程式人生 > >JavaScript、jQuery、AJAX、JSON 這四個之間的關係?

JavaScript、jQuery、AJAX、JSON 這四個之間的關係?

感謝於江水授權我將此文章釋出到公眾號。

有一天,你們人類不滿足網頁只是一些文字和圖片的展示,希望頁面上可以有更多功能。比如點選一個按鈕,彈一個視窗或者改變頁面上某些內容。

為了實現這種功能,就創造了一門指令碼語言,逐步升級演化成了 JavaScript 這門語言。


640?wx_fmt=png

JavaScript 為頁面提供更多功能,是頁面互動功能的基礎語言。此外它的語言規範和引擎還被用於其他領域,比如 Node 等。

人類為了讓自己頁面功能更加豐富,使用了大量的 JavaScript,並且寫了非常多的程式碼。這時候發現不同瀏覽器對 JavaScript 的支援程度非常不統一,而且原生 JavaScript 實現某些看起來很簡單的功能都很麻煩。於是 jQuery

就把這些相容性問題統一,並封裝了大量的 API,可以讓你非常簡單就實現很多功能。

jQuery 遮蔽了瀏覽器之間的相容性問題,針對常用功能封裝了大量的 API,並支援外掛機制,讓你寫 JS 的效率很高,質量很好。

簡單的頁面上的互動再次不滿足人類的需求,比如一個資料填寫表單,需要填寫一個名稱,這個名稱還必須不能跟之前的重複。校驗這個名稱不能重複,就需要把資料提交上去,與伺服器端資料互動的方法就是 form 提交表單。這時候需要使用者填完所有的表單,點選『確定』之後提交校驗。如果此時名稱被佔用就悲劇了。

解決這個問題的方案關鍵點在資料互動上面。最好的解決方案應該是輸入完名字之後,就自動去吧資料發給後端,然後拿到結果並提示給使用者,而不是統一提交。於是人類就想出了一套新的資料互動方案,即無重新整理的非同步請求,名字叫 Ajax
。通過 Ajax 可以通過 JS 與後端介面進行資料互動,而不會影響當前頁面。當介面返回『被佔用』的時候,JS 在頁面上給個提示就可以很好的實現了。


640?wx_fmt=jpeg
Ajax 技術提供了一種新的前後端資料互動方式,不需要重新整理頁面,而且不阻塞頁面執行流程,非同步的去請求去獲取、互動資料。

一開始只是通過 Ajax 非同步發一個請求,資料就是一個簡單的使用者名稱稱,所以直接按照字串發過去就好了。後來需要 Ajax 傳送的資料越來越多,比如一整張表單。這時候就需要有一套規則來描述更復雜的資料,一開始估計就是用一些字元分割拼起來,再後來人類用 xml 來描述,發現解析還是挺麻煩的,於是就基於 JavaScript 的資料型別創造了 JSON

這種資料描述格式,很簡單的就可以描述很複雜的資料。同時獨立於語言,這樣就可以在多種語言內使用。

JSON 用來描述前後端資料互動的內容格式,有了 JSON 這樣的一套統一的描述規則,前後端解析資料的成本變低,使用非常簡單。JSON 屬於 JavaScript 的一個子集。

這就是上面幾個關鍵詞的關係和用途。