# 前方的路:希望成為你的起點
## 感謝
首先要謝謝每一位讀到最后一章的同學。這是我的第一本小冊,也是我第一次撰寫對外開放的知識內容,謝謝大家選擇了這本小冊,選擇了我這個作者。
## 未完成的故事
對筆者來說,撰寫小冊的兩個月,是挑戰重重的兩個月。在這個過程中,筆者時時刻刻都在與“程序員”和“技術作者”這兩個角色較勁。前者要求我錙銖必較、求深求全,后者則需要我在小冊內容的深度、廣度與可讀性之間作出權衡。正是因為有了這一番又一番的權衡,它才終于被打磨成了一本篇幅短小、賣相可愛的“小冊”,而非一本龐大的、令人望而生畏的“手冊”。
但也是因為如此,小冊里多出了一些“未完成的故事”。比如網絡優化這部分,我想可能會有同學興致勃勃地想聽一聽 DNS 的預解析或者 TCP 協議的負載均衡;再比如資源加載這一塊,為什么說了 async 和 defer,卻沒有提 preload 和 prefetch 呢?又或者比較追逐“潮流”的同學,心心念念的是 Service Worker 和 Web Worker 的應用方案;甚至所在團隊性能這塊還沒做起來的同學,希望我可以提供能夠耦合進業務的性能監測方案,等等(這些都是非常實際的閱讀需求)。
但正如我開篇所說的,我的初心并非是為大家提供一本面面俱到的“手冊”。前端性能優化的知識點零碎、不成體系,這是它學習的痛點,也是小冊想要解決的問題。有許多同樣精彩的性能知識,我們可以針對它做技術方案測試、可以為它開研討會,但它并不適合出現在小冊的寫作大綱里、以短文的形式呈現。我希望呈現給大家的內容,是前后相連,自成體系的“一串”知識。是大家在學習、工作之余,在等公交、搭地鐵的間隙,在碎片化的時間里,仍然能夠輕松閱讀并理解的友好內容。
## 前方的路
小冊之愿,是希望成為大家性能優化這條路上的起點。
相對于模式成熟、方案完善的服務端性能優化來說,前端性能優化整體的起步是比較晚的。但在當今的大環境下,它又是極其重要的一個工作。我們是離用戶最近的工程師,需要直接對用戶的體驗負責。因此,我們需要做的努力還有太多太多。
既然已經讀到了最后一章,我想大家應該都收獲了一張屬于自己的前端性能優化的核心知識“索引表”——我希望它能成為大家的起點,成為各位今后拓展相關技能的素材。當下前端世界里,提起技術,許多初學者第一反應仍然是學框架、學工具。框架和工具固然重要,但一個合格的前端工程師,還應該具有抽象思維的能力和技術攻關的實力——這兩點,都可以在性能優化的學習和實踐過程中得到磨煉和凸顯。
在龐大的前端性能知識體系面前,一本單薄的小冊是遠遠不夠的。接下來大家要做的,就是實踐、實踐、再實踐!反復地閱讀文字、一味地深究理論是無法使我們的技能變“厚”的,最好的辦法就是去做,去用,在用的過程中發現問題、解決問題、拓展問題——那些“未完成的故事”,一定會在這個過程中被你書寫圓滿。
把這張“索引表”裝進行囊,繼續征戰你的前端性能優化之旅吧!
- 開篇:知識體系與小冊格局
- 網絡篇 1:webpack 性能調優與 Gzip 原理
- 網絡篇 2:圖片優化——質量與性能的博弈
- 存儲篇 1:瀏覽器緩存機制介紹與緩存策略剖析
- 存儲篇 2:本地存儲——從 Cookie 到 Web Storage、IndexDB
- 彩蛋篇:CDN 的緩存與回源機制解析
- 渲染篇 1:服務端渲染的探索與實踐
- 渲染篇 2:知己知彼——解鎖瀏覽器背后的運行機制
- 渲染篇 3:對癥下藥——DOM 優化原理與基本實踐
- 渲染篇 4:千方百計——Event Loop 與異步更新策略
- 渲染篇 5:最后一擊——回流(Reflow)與重繪(Repaint)
- 應用篇 1:優化首屏體驗——Lazy-Load 初探
- 應用篇 2:事件的節流(throttle)與防抖(debounce)
- 性能監測篇:Performance、LightHouse 與性能 API
- 前方的路:希望成為你的起點