发表于2025-04-04
JavaScript性能優化:度量、監控與可視化 [Pro JavaScript Performance] pdf epub mobi txt 電子書 下載 2025
首部係統化闡述JavaScript性能優化的經典著作,擁有20餘年經驗的Web性能調優專傢經驗結晶,
從語言特性、瀏覽器原理、網絡傳輸機製、數據結構等多角度深層探討影響JavaScript代碼性能的根本原因,並給齣解決問題完整流程和解決方案
《JavaScript性能優化:度量、監控與可視化》是首部係統化闡述JavaScript性能優化的經典著作,擁有20餘年經驗的Web性能調優專傢經驗結晶,全五星好評。從語言特性、瀏覽器原理、網絡傳輸機製、數據結構等多角度深層探討影響JavaScript代碼性能的根本原因,從性能問題的度量、監控和可視化全維度給齣瞭提升JavaScript代碼性能的實用工具、方法和實踐,並對各種常見的性能問題給齣瞭完整的解決方案。
《JavaScript性能優化:度量、監控與可視化》共分8章:第1章從Web應用運行機製和原理方麵解析性能;第2章介紹測量性能的工具(Firebug、YSlow、WebPagetest、R)和實用技術;第3章基於樣例工程WPTRuner來介紹如何進行自動化性能監測與可視化;第4章以創建的自製工具perfLogger來講解JavaSript基準測試和日誌記錄;第5章講解W3C製定的用於收集瀏覽器性能度量值的新標準化方法;第6章具體介紹如何使用JavaScript改進Web性能的各個方麵;第7章探討提升運行時性能的途徑,並運用R生成量化的性能圖錶;第8章探討如何在性能與代碼可讀性以及代碼模塊化之間謀求平衡。
Tom Barker,資深Web技術專傢,有20餘年行業經驗,專注於Web開發的各個方麵。現為Comcast公司的Web開發高級經理,費城大學的兼職教授。癡迷於優雅的軟件解決方案,軟件持續改進,數據的提煉、分析以及可視化。
繆綸,資深軟件開發工程師、安全員,負責或參與過多個國傢科技支撐項目。現從事計算機網絡以及Web開發相關工作,關注JavaScript網站性能多年,對Web性能提升有獨到見解。
目 錄
譯者序
緻 謝
第1章 什麼是性能
1.1 Web性能
1.2 解析與渲染
1.2.1 渲染引擎
1.2.2 JavaScript引擎
1.3 運行時性能
1.4 為什麼性能如此重要
1.5 工具與可視化
1.6 本書的目的
1.7 使用的技術以及拓展閱讀
1.8 小結
第2章 測量和影響性能的工具與技術
2.1 Firebug
2.1.1 安裝
2.1.2 使用
2.2 YSlow
2.2.1 安裝
2.2.2 使用
2.3 WebPagetest
2.4 縮減
2.4.1 Minify
2.4.2 YUI Compressor
2.4.3 Closure Compiler
2.4.4 結果比較
2.4.5 分析與可視化
2.5 R入門
2.5.1 安裝並運行R
2.5.2 R基礎
2.5.3 使用R進行簡單繪圖
2.5.4 R的一個實例
2.5.5 使用apply()函數
2.6 小結
第3章 WPTRunner--使用WebPagetest進行自動化性能監測與可視化
3.1 架構
3.2 創建一個共享配置文件
3.3 解析測試結果
3.4 完成實例
3.5 數據解析
3.6 繪製加載時間
3.7 繪製負載和HTTP請求數
3.8 開源
3.9 小結
附:WebPagetest的創辦人Patrick Meenan訪談
第4章 perfLogger--JavaScript基準測試和日誌記錄
4.1 架構
4.2 開始編寫代碼
4.2.1 計算測試結果
4.2.2 設置測試結果元數據
4.2.3 顯示測試結果
4.2.4 保存數據
4.2.5 製定公有API
4.3 遠程日誌記錄
4.4 一個示例頁
4.5 為測試結果繪製圖錶
4.6 開源
4.7 小結
第5章 展望未來,性能的標準化
5.1 W3C的Web性能工作組
5.2 性能對象
5.2.1 性能定時
5.2.2 用perfLogger整閤性能對象
5.3 升級日誌功能
5.4 性能導航
5.5 性能內存
5.6 高分辨率時間
5.7 新數據可視化
5.8 小結
第6章 Web性能優化
6.1 優化頁麵的渲染瓶頸
6.1.1 腳本加載
6.1.2 異步
6.1.3 對比結果
6.2 惰性加載
6.2.1 惰性加載的藝術
6.2.2 惰性加載腳本
6.2.3 惰性加載CSS
6.2.4 為什麼不惰性加載圖片
6.3 小結
第7章 運行時性能
7.1 跨作用域的緩存變量和屬性
7.1.1 新建文件
7.1.2 創建測試
7.1.3 結果可視化
7.1.4 屬性引用示例
7.2 核心JavaScript與Frameworks的比較
7.2.1 jQuery與JavaScript比較:循環
7.2.2 jQuery與JavaScript比較:DOM訪問
7.3 Eval函數的真正價值
7.4 DOM訪問
7.4.1 使用隊列完成DOM元素修改
7.4.2 使用隊列添加新節點
7.5 嵌套循環的代價
7.6 小結
第8章 在性能、軟件工程最佳實踐和軟件産品運行之間謀求平衡
8.1 在性能與可讀性、模塊化和良好設計之間謀求平衡
8.2 焦土化性能
8.2.1 內聯函數
8.2.2 Closure Compiler
8.3 下一步:從實踐到實際應用
8.3.1 Web性能監測
8.3.2 用工具檢測你的網站
8.3.3 在測試實驗環境中進行基準測試
8.3.4 分享你的發現
8.4 小結
第1章 什麼是性能
所謂性能是指應用程序運行的速度,它反映瞭應用程序質量多個層麵的問題。我們在談論Web應用程序時,該應用程序呈現給用戶所消耗的時間就是我們所說的Web性能,應用程序對用戶指令的響應速度就是我們所說的運行時性能。接下來我們就看看性能的這兩個方麵。
在Web(特彆是移動Web)開發背景下,性能是一個相對較新的主題,但是它絕對早就應該得到關注瞭。
本書將探討如何量化和優化JavaScript性能,包括Web性能和運行時性能。這是至關重要的,因為當你試圖解決網站的整體性能時,JavaScript可能是提升性能最大的地方。作為YSlow和PageSpeed的締造者,以及Web性能領域的先驅者,Steve Souders已經通過實驗證明瞭這一點。在實驗中,他演示瞭當刪除一個樣本網站的JavaScript代碼之後,該網站平均性能提高瞭31%。我們也完全可以像Steve實驗中做的那樣,從我們的網站中刪除所有的JavaScript代碼,或者精簡JavaScript代碼,並學習如何評估我們編寫的代碼的執行效率。
徹底刪除JavaScript代碼是不現實的,所以我們要知道如何使JavaScript更加高效。甚至更為重要的是,我們要知道如何創建自動化的工具以跟蹤JavaScript的效率,並給齣可視化的分析和報告。
1。1 Web性能
當你坐在筆記本前,或使用手持設備,打開Web瀏覽器,輸入一個URL地址並按下迴車鍵,然後等待頁麵內容傳送過來、呈現在你的瀏覽器上時,此時所需要的時間取決於Web性能。甚於我們的目標,我們將Web性能定義為全麵反映頁麵傳送並對最終用戶可用的時間。
影響Web性能的因素有很多,網絡延遲是排在第一位的。你的網絡有多快?要得到所需的服務內容,需要往返跳轉多少次?服務器要給齣多少次響應?
為瞭更好地理解網絡延遲,先來看看完成一個HTTP事務所需要的步驟(見圖1-1)。
……
譯者序
JavaScript是比較完善的一種前端開發語言,在現今的Web開發(尤其是在Web 2.0)中應用非常廣泛。在Web 2.0越來越流行的今天,我們會發現,許多Web應用項目都會涉及大量的JavaScript代碼,並且以後會越來越多。Web開發過程中經常會遇到一些性能問題,尤其是在針對Web 2.0的應用中,應用的性能問題很大一部分都是由於程序員編寫的JavaScript腳本性能不佳所造成的,其中也包括瞭JavaScript語言本身的性能問題,以及與DOM交互時的性能問題。
JavaScript作為一種解釋執行語言,加之它的單綫程機製,決定瞭性能問題是JavaScript的軟肋,這也是Web軟件工程師在編寫JavaScript代碼過程中需要高度重視的一個問題,尤其是針對Web 2.0的應用。絕大多數Web軟件工程師都或多或少地遇到過所開發的Web 2.0應用的性能欠佳問題,其主要原因就是JavaScript性能不足,瀏覽器負荷過重。但是,解決這種解釋執行並且單綫程運作語言的性能問題並非易事。
本書從一個體係化的角度對JavaScript性能進行考量,從Web性能探測工具,到數據的收集整理,再到數據的展示與可視化,最後是性能問題的解決,深入淺齣、條理清晰。本書嘗試從多個方麵綜閤分析導緻JavaScript性能問題的原因,並給齣適閤的解決方案,幫助讀者提升Web應用的品質。
本書頁數瞭瞭,內容精煉,但是它承載瞭JavaScript性能方麵最為寶貴的經驗。不僅從語言特性、瀏覽器原理、網絡傳輸機製、數據結構等層麵分析導緻JavaScript性能問題的原因,而且介紹多種工具來幫助讀者提升開發過程中的工作效率。
翻譯本書的過程,也是我們學習和提高的過程。雖然我們一直關注國內外Web性能領域的相關動態,但是從未像本書的作者那樣,形成一套完整的實踐方法體係。每當看到書中作者提供的代碼樣例,我們都試圖在真實環境中實踐,以深刻體會作者的意圖和思想。但是由於時間和軟硬件環境等方麵的原因,無法實踐書中所有的代碼樣例。這裏也希望讀者能夠親自動手實踐,這樣纔能夠更快地掌握JavaScript性能改善的方法和能力。
本書的翻譯組織工作由繆綸全麵負責。第1~3章由繆綸和王誌璋譯校,作者簡介、第4章、第6章由繆綸和王冠華譯校,第5章、第7章、第8章由葉茂譯校。
我們在翻譯本書的過程中力求行文流暢,但紕漏之處在所難免,請廣大讀者能夠批評指正。
最後,希望本書能夠幫助業界的同仁們打造齣性能優越的Web軟件産品。
繆 綸
內容還不錯,可以用來學習
評分商品質量很好,京東物流快服務好,值得信賴,還會繼續購買
評分正品,很新
評分看瞭,不錯,但是有一些不太明白
評分內容不錯。。。。。。。
評分不錯的相關專題書籍 給贊
評分200-100能入眼的就這幾本瞭
評分從書籍中汲取知識和力量,是人生之必需。每個人從一齣生開始,就在不停地學習各種各樣的知識,以便將來在社會上更好的立足。 讀書就如同一個科學傢去讀當代文學作品,一個詩人去讀某個考古學傢的記錄一樣,讀是因為喜歡,讀是源於興趣,有一句話說的好:“閱讀不能改變人生的長度,但它可以改變人生的寬度。”正是這種興趣的閱讀,讓我的生活豐富多彩。 讀書已經成為我的一種習慣,小學時最愛做的事情,就是看各種各樣的“閑書”,從爸爸媽媽給訂閱的兒童雜誌,到一些文學名著,我都照單全收。即使是上中學以後,也是依然愛讀書,也要在繁忙間隙讓自己的心靈得到些許的休憩。拿起一本喜愛的書籍,就好像隨手推開一扇窗戶,欣賞窗外美麗的風景。這風景或粗獷豪放,或細膩委婉,或雄偉磅礴,或感人肺腑,令我渾然忘卻瞭學習中的煩惱與不快,仿佛排徊在青山綠水之間,呼吸著新鮮的空氣,揮著思想的翅膀,感受著生命的美好。 捧一幀書冊,看史事五韆;品一壺清茗,行通途八百。無須走馬塞上,你便可看楚漢交兵;無須程門立雪,你便可聽師長之諄諄教誨。莘莘學子,自幼苦讀經書,不惜為此頭懸梁,錐刺骨,為的是什麼,就是充實自己的知識體係,而這最根本的途徑就是“開捲”。曹雪芹“披閱十載,增刪五次”,方成“紅樓巨著”;紀曉嵐“飽覽群書,徜徉書海”,方得“天下第一纔子”稱號……他們都是從“開捲”那裏得到瞭最大的益處。 初讀好書,如獲良友;重讀好書,如逢故知。書,可以使我們增長見識,不齣門便可知天下事。書,可以提高我們的閱讀能力和寫作水平。書,可以使我們變得有修養。書,還可使我們在競爭激烈的社會上立於不敗之地……其實讀書的好處有很多,就等著有心人去慢慢發現。 同書一樣,報紙上形形色色的消息,五花八門的知識,都像磁鐵般吸引著人們。世界天天在變化,社會天天在發展,新人新事新科技層齣不窮。這樣,報紙就天天有新內容,每天都會給你新的啓發,新的感受。忠實的讀者因經常讀報,不僅樂趣無窮,而且開闊瞭視野,陶冶瞭性情,有的人因此而走上瞭成功之路。毫無疑問,報紙是韆百萬人終身的良師和益友。 讀書好,好讀書,讀好書;勤讀報,會讀報,你就會和大韆世界息息相通。這樣的好機會,我們從小就因該抓住;這樣的好習慣,我們從小就因該養成。[BJTJ],買迴來覺得還是非常值的。我喜歡看書,喜歡看各種各樣的書,看的很雜,文學名著,流行小說都看,隻要作者的文筆不是太差,總能讓我從頭到腳看完整本書。
評分介紹瞭不少編碼思路與開發小技巧,很值得一讀,不過最好有一些基礎再來看它
JavaScript性能優化:度量、監控與可視化 [Pro JavaScript Performance] pdf epub mobi txt 電子書 下載