內容簡介

如果你使用JavaScript構建交互豐富的Web應用,那麼JavaScript代碼可能是造成你的Web應用速度變慢的主要原因。

由美國NicholasC.Zakas所著,丁琛翻譯,澤卡斯審校的《高性能JavaScript》一書揭示的技術和策略能幫助你在開發過程中消除性能瓶頸。你將會了解如何提升各方面的性能,包括代碼的加載、運行、DOM交互、頁面生存周期等。雅虎的前端工程師NicholasC.Zakas和其他五位JavaScript專家介紹了頁面代碼加載的最佳方法和編程技巧,來幫助你編寫更為高效和快速的代碼。你還會了解到構建和部署文件到生產環境的*佳實踐,以及有助於定位線上問題的工具。

NicholasC.Zakas是一位軟件工程師,專注於用戶界面設計以及用JavaScript、動態HTML、CSS、XML和XSLT實現Web應用。他目前就職於Yahoo!首頁小組,職位為首席前端工程師。他同時也是YUI(Yahoo!用戶界面類庫)的代碼貢獻者,作品有Cookie工具集,Profiler和YUITest。Nicholas是《JavaScript高級程序設計》譯注1一書的作者,同時也是《Ajax高級程序設計》譯注2的合著者(均為Wrox出版)。此外,他還為WebReference、Sitepoint和YUIBlog撰寫了大量網絡文章。Nicholas定期發表關於Web開發、JavaScript和最佳實踐的演講。他去演講過的公司有:Yahoo!、Linkedln、Google和NASA,還有AjaxExperience、theRichWebExperience和Velocity等會議。Nicholas旨在通過寫作和演講來分享他在開發界上*流行的Web應用的工作中所學到的各種有價值信息。
 

目錄

譯者序
前言
第1章 加載和執行
1.1 腳本位置
1.2 組織腳本
1.3 阻塞的腳本
1.3.1 延遲的腳本
1.3.2 動態腳本元素
1.3.3 XMLHttpRequest腳本注入
1.3.4 推薦的阻塞模式
1.4 小結
第2章 數據訪問
2.1 管理作用域
2.1.1 作用域鏈和標識符解析
2.1.2 標識符解析的性能
2.1.3 改變作用域鏈
2.1.4 動態作用域
2.1.5 閉包,作用域和內存
2.2 對象成員
2.2.1 原型
2.2.2 原型鏈
2.2.3 嵌套成員
2.2.4 緩存對象成員值
2.3 小結
第3章 DOM編程
3.1 瀏覽器中的DOM
3.1.1 天生就慢
3.2 DOM訪問與修改
3.2.1 innerHTML對比DOM方法
3.2.2 節點克隆
3.2.3 HTML集合
3.2.4 遍歷DOM
3.3 重繪與重排
3.3.1 重排何時發生
3.3.2 渲染樹變化的排隊與刷新
3.3.3 *小化重繪和重排
3.3.4 緩存布局信息
3.3.5 讓元素脫離動畫流
3.3.6 IE和:hover
3.4 事件委托
3.5 小結
第4章 算法和流程控制
4.1 循環
4.1.1 循環的類型
4.1.2 循環性能
4.1.3 基於函數的迭代
4.2 條件語句
4.2.1 if-else對比switch
4.2.2 優化if-else
4.2.3 查找表
4.3 遞歸
4.3.1 調用棧限制
4.3.2 遞歸模式
4.3.3 迭代
4.3.4 Memoizaion
4.4 小結
第5章 字符串和正則表達式
5.1 字符串連接
5.1.1 加(+)和加等於(+=)操作符
5.1.2 數組項合並
5.1.3 Sring.prototype.concat
5.2 正則表達式優化
5.2.1 正則表達式工作原理
5.2.2 理解回溯
5.2.3 回溯失控
5.2.4 基准測試的說明
5.2.5 更多提高正則表達式效率的方法
5.2.6 何時不使用正則表達式
5.3 去除字符串首尾空白
5.3.1 使用正則表達式去首尾空白
5.3.2 不使用正則表達式去除字符串首尾空白
5.3.3 混合解決方案
5.4 小結
第6章 快速響應的用戶界面
6.1 瀏覽器UI線程
6.1.1 瀏覽器限制
6.1.2 多久才算「太久」
6.2 使用定時器讓出時間片段
6.2.1 定時器基礎
6.2.2 定時器的精度
6.2.3 使用定時器處理數組
6.2.4 分割任務
6.2.5 記錄代碼運行時間
6.2.6 定時器與性能
6.3 Web Workers
6.3.1 Worker運行環境
6.3.2 與Worker通信
6.3.3 加載外部文件
6.3.4 實際應用
6.4 小結
第7章 Ajax
7.1 數據傳輸
7.1.1 請求數據
7.1.2 發送數據
7.2 數據格式
7.2.1 XML
7.2.2 JSON
7.2.3 HTML
7.2.4 自定義格式
7.2.5 數據格式總結
7.3 Ajax性能指南
7.3.1 緩存數據
7.3.2 了解Ajax類庫的局限
7.4 小結
第8章 編程實踐
8.1 避免雙重求值(Double Evaluation)
8.2 使用Object/Array直接量
8.3 不要重復工作
8.3.1 延遲加載
8.3.2 條件預加載
8.4 使用速度快的部分
8.4.1 位操作
8.4.2 原生方法
8.5 小結
第9章 構建並部署高性能JavaScrip應用
9.1 Apache Ant
9.2 合並多個JavaScrip文件
9.3 預處理JavaScrip文件
9.4 JavaScrip壓縮
9.5 構建時處理對比運行時處理
9.6 JavaScrip的HTTP壓縮
9.7 緩存JavaScrip文件
9.8 處理緩存問題
9.9 使用內容分發網絡(CDN)
9.10 部署JavaScrip資源
9.11 敏捷JavaScrip構建過程
9.12 小結
第10章 工具
10.1 JavaScrip性能分析
10.2 YUI Profiler
10.3 匿名函數
10.4 Firebug
10.4.1 控制台面板分析工具
10.4.2 Console API
10.4.3 網絡面板
10.5 IE開發人員工具
10.6 Safari Web檢查器(Web Inspector)
10.6.1 分析面板
10.6.2 資源面板
10.7 Chrome開發人員工具
10.8 腳本阻塞
10.9 Page Speed
10.10 Fiddler
10.11 YSlow
10.12 DynaTrace Ajax Edition
10.13 小結
索引
網路書店 類別 折扣 價格
  1. 新書
    $390