今天是2017年6月26日,星期一,開始從第一章看起。第一章主要講的是前端技術的發展概況以及一些必須掌握的瀏覽器基礎知識與經常使用開發技術。前端
頁面內容多而複雜,爲了保證開發效率,咱們能夠藉助符合特定場景的前端框架來提升開發效率,例如使用JQuery丶MVVM等開發框架,對經常使用的 HTML DOM 操做進行高效封裝,大大簡化開發工做量,提升效率。
web
前端項目代碼愈來愈多丶結構愈來愈複雜,咱們必須考慮用模塊化和組件化的思路來管理。所謂的模塊化和組件化是指採用代碼管理中分治的思想,將複雜的代碼結構拆分紅多個獨立丶簡單丶解耦合的結構或文件分開管理,使項目結構更加清晰。若是頁面的內容增多,咱們能夠藉助 Web Component(HTML 5的一種組件化規範),註冊一個<news>的標籤來直接引入使用,而後再使用<news>這個標籤來代替上面組件的內容進行管理維護,頁面中其餘的標籤內容也能夠這樣來處理。
數據庫
頁面加載的內容不少,爲了儘快將網頁內容顯示給客戶,咱們能夠經過異步的方式來實現,即將一部份內容先展現給用戶,而後根據用戶的操做,異步加載用戶須要的其餘內容,避免用戶長時間等待。後端
爲了限制頁面內圖片的大小以保證頁面快速展現,就須要對圖片進行優化處理,如使用更高壓縮比 webp 格式的圖片,在圖片質量不下降的狀況下,能夠大幅度減少圖片的網絡流量消耗,提升圖片的加載速度。
瀏覽器
對於重複打開的頁面,使用 文件緩存 能夠使瀏覽器再也不向服務器請求重複的內容,這樣能夠大幅度提升網頁資源的加載速度。並且幸運的是,瀏覽器默承認以支持文件緩存,對於一段時間內瀏覽器的重複請求,服務器可能會返回 HTTP 的 304 狀態碼或者不發送請求,讓瀏覽器直接從本地讀取內容。
緩存
前端結構的開發實現模式前後經歷了 靜態黃頁時期丶服務器組裝動態網頁數據時期丶後端爲主的 MVC 模式時期丶先後端分離時期丶純前端 MV* 爲主和中間層直出時期丶前端 Virtual DOM 丶MNV*丶先後端同構時期。前端從無到有且發展到如今的不變宗旨是,一直持續在以效率和質量爲最終導向的道路上探索前進,而且將來關於 Web 技術效率和質量這兩方面的探索仍會有增無減。
前端框架
接下來談論一個比較常見的問題:從咱們打開瀏覽器輸入一個網址到頁面展現網頁內容的這段時間內,瀏覽器和服務端都發生了什麼事情? 咱們直接來看一個相對簡潔但比較清晰的過程描述。服務器
整個過程當中使用到了較多的瀏覽器功能,如用戶地址欄輸入框丶網絡請求丶瀏覽器文檔解析丶渲染引擎丶Javascript 執行引擎丶客戶端存儲等。
網絡
一般咱們認爲瀏覽器主要由七部分組成:用戶界面丶網絡丶Javascript 引擎丶渲染引擎丶UI 後端丶Javascript 解釋器和持久化數據存儲。以下圖所示: 做爲前端開發者,咱們須要重點理解渲染引擎的工做原理,靈活運用數據持久化存儲技術,由於實際的開發工做中這部分的操做比較多,而其餘幾個部分都是由瀏覽器決定的,開發者控制的部分相對較少。渲染引擎在瀏覽器中主要用於解析 HTML 文檔和 CSS 文檔,而後 將 CSS 規則應用到 HTML 標籤元素上,並將 HTML 渲染到瀏覽器窗口中以顯示具體的 DOM 內容。
框架