[color=#ffffff]空格[/color]前端技術的出現是爲了將DOM的交互操做從整個WEB站點開發中獨立出來,進而進行更加高效的管理 。隨着AJAX技術的出現,前端頁面上的用戶操做愈來愈多,愈來愈複雜,之前的不少用戶請求均可以經過AJAX無刷新的操做來完成。 一般AJAX的流程爲:用戶使用XMLHTTPRequest建立HTTP請求來獲取服務端的數據或一段HTML結構內容,請求成功後在頁面上進行增長、修改、刪除DOM元素的操做。 到目前爲止,這種操做經歷了3個階段: 第1階段:原生及jQuery階段。用原生手段獲取並操做DOM過於複雜,因而jQuery誕生了。 第2階段:MV\*階段。隨着AJAX技術盛行、SPA普遍應用,每次數據請求後進行數據渲染和事件綁定,用戶操做後進行另外一部分數據的請求和事件綁定,後面以此類推,最終代碼會亂成一鍋粥,因而MV\*誕生了。它將頁面上與DOM相關的內容,抽象成:數據模型(Model即M)、視圖(View即V)、事件控制函數(Controller即C,或Presenter即P,或ViewModel即VM)。(1)MVC,C監聽V的變化,C手動改變V。(2)MVP,V觸發P的動做,P手動改變V。(3)MVVM,V觸發VM的動做,VM自動改變V。表明框架爲Angular.js。 第3階段:Virtual DOM階段。在MV\*裏,一個DOM的改變將會致使大量重複渲染,因而Virtual DOM誕生了。用Virtual DOM控制頁面DOM結構更新的過程:建立原始(頁面或組件)的Virtual DOM,用戶更新DOM後建立新的Virtual DOM,對比兩個Virtual DOM,把Virtual DOM的變化部分添加到DOM樹上,最後渲染到頁面上。表明框架爲React.js,在React.js中,render執行的結果獲得的並非真正的DOM節點,結果僅僅是輕量級的JavaScript對象,即Virtual DOM。