书籍详情
更快速网站(影印版)
作者:苏德尔(Steve Souders) 著
出版社:东南大学出版社
出版时间:2010-01-01
ISBN:9787564119348
定价:¥42.00
购买这本书可以去
内容简介
《更快速网站(影印版)》内容简介:对于任何成功的网站来说,性能是至关重要的。但伴随着不断增长的丰富内容和Ajax的过度使用,如今的Web应用已经将浏览器推至性能极限。在《更快速网站(影印版)》中,Google的Web性能专家和前任雅虎首席网站性能官Steve Souders提供了宝贵的技术,来帮助你优化网站性能。作者的上一《更快速网站(影印版)》是非常畅销的《High Performance Web Sites》,它透露了80%的网页加载时间是花在客户端,使网络开发世界为之震惊。在《更快速网站(影印版)》中,Souders和8位专家撰稿人提供了最佳实践和实用建议,用于在三个范畴提高网站的性能:JavaScript——获取用于了解Ajax性能的建议,编写有效的JavaScript,创建响应程序,加载脚本时不阻止其他组件等等。Network——学习穿过多个域共享资源,减小图片尺寸而不损失质量,以及使用分块编码(chunked encoding)来更快呈现页面。Browser——探索内嵌框架(iframe)的替代方案、如何简化CSS选择器和其他技术。对于当今的富媒体网站和Web 2.0应用来说,速度是至关重要的。有了这《更快速网站(影印版)》,你将学习到如何减少你的网站的加载时间,让它们响应得更快。
作者简介
Steve Souders,在Google从事网络性能和开放源码计划方面的工作。他是YSlow(Firebug性能分析扩展)的创造者,并且担任Velocity(0’Reilly的网络性能和业务运营会议)的联合主席。Steve经常在会议上或者高级别公司中发言,包括微软、亚马逊、MySpace、Linkedln、Facebook。
目录
Credits
Preface
1. Understanding Ajax Performance
Trade-offs
Principles of Optimization
Ajax
Browser
Wow!
JavaScript
Summary
2. Creating Responsive Web Applications
What Is Fast Enough?
Measuring Latency
When Latency Goes Bad
Threading
Ensuring Responsiveness
Web Workers
Gears
Timers
Effects of Memory Use on Response Time
Virtual Memory
Troubleshooting Memory Issues
Summary
3. Splitting the Initial Payload
Kitchen Sink
Savings from Splitting
Finding the Split
Undefined Symbols and Race Conditions
Case Study: Google Calendar
4. Loading Scripts Without Blocking
Scripts Block
Making Scripts Play Nice
XHR Eval
XHR Injection
Script in Iframe
Script DOM Element
Script Defer
document.write Script Tag
Browser Busy Indicators
Ensuring (or Avoiding) Ordered Execution
Summarizing the Results
And the Winner Is
5. Coupling Asynchronous Scripts
Code Example: menu.js
Race Conditions
Preserving Order Asynchronously
Technique 1: Hardcoded Callback
Technique 2: Window Onload
Technique 3: Timer
Technique 4: Script Onload
Technique 5: Degrading Script Tags
Multiple External Scripts
Managed XHR
DOM Element and Doc Write
General Solution
Single Script
Multiple Scripts
Asynchronicity in the Real World
Google Analytics and Dojo
YUI Loader Utility
6. Positioning Inline Scripts
Inline Scripts Block
Move Inline Scripts to the Bottom
Initiate Execution Asynchronously
Use Script Defer
Preserving CSS and JavaScript Order
Danger: Stylesheet Followed by Inline Script
Inline Scripts Aren’t Blocked by Most Downloads
Inline Scripts Are Blocked by Stylesheets
This Does Happen
7. Writing Efficient JavaScript
Managing Scope
Use Local Variables
Scope Chain Augmentation
Efficient Data Access
Flow Control
Fast Conditionals
Fast Loops
String Optimization
String Concatenation
Trimming Strings
Avoid Long-Running Scripts
Yielding Using Timers
Timer Patterns for Yielding
Summary
8. Scaling with Comet
How Comet Works
Transport Techniques
Polling
Long Polling
Forever Frame
XHR Streaming
Future Transports
Cross-Domain
Effects of Implementation on Applications
Managing Connections
Measuring Performance
Protocols
Summary
9. Going Beyond Gzipping
Why Does This Matter?
What Causes This?
Quick Review
The Culprit
Examples of Popular Turtle Tappers
How to Help These Users?
Design to Minimize Uncompressed Size
Educate Users
Direct Detection of Gzip Support
10. Optimizing Images
Two Steps to Simplify Image Optimization
Image Formats
Background
Characteristics of the Different Formats
More About PNG
Automated Lossless Image Optimization
Crushing PNGs
Stripping JPEG Metadata
Converting GIF to PNG
Optimizing GIF Animations
Smush.it
Progressive JPEGs for Large Images
Alpha Transparency: Avoid AlphaImageLoader
Effects of Alpha Transparency
AlphaImageLoader
Problems with AlphaImageLoader
Progressively Enhanced PNG8 Alpha Transparency
Optimizing Sprites
?ber-Sprite Versus Modular Sprite
Highly Optimized CSS Sprites
Other Image Optimizations
Avoid Scaling Images
Crush Generated Images
Favicons
Apple Touch Icon
Summary
11. Sharding Dominant Domains
Critical Path
Who’s Sharding?
Downgrading to HTTP/1.0
Rolling Out Sharding
IP Address or Hostname
How Many Domains
How to Split Resources
Newer Browsers
12. Flushing the Document Early
Flush the Head
Output Buffering
Chunked Encoding
Flushing and Gzip
Other Intermediaries
Domain Blocking During Flushing
Browsers: The Last Hurdle
Flushing Beyond PHP
The Flush Checklist
13. Using Iframes Sparingly
The Most Expensive DOM Element
Iframes Block Onload
Parallel Downloads with Iframes
Script Before Iframe
Stylesheet Before Iframe
Stylesheet After Iframe
Connections per Hostname
Connection Sharing in Iframes
Connection Sharing Across Tabs and Windows
Summarizing the Cost of Iframes
14. Simplifying CSS Selectors
Types of Selectors
ID Selectors
Class Selectors
Type Selectors
Adjacent Sibling Selectors
Child Selectors
Descendant Selectors
Universal Selectors
Attribute Selectors
Pseudo-Classes and Pseudo-Elements
The Key to Efficient CSS Selectors
Rightmost First
Writing Efficient CSS Selectors
CSS Selector Performance
Complex Selectors Impact Performance (Sometimes)
CSS Selectors to Avoid
Reflow Time
Measuring CSS Selectors in the Real World
Appendix: Performance Tools
Index
Preface
1. Understanding Ajax Performance
Trade-offs
Principles of Optimization
Ajax
Browser
Wow!
JavaScript
Summary
2. Creating Responsive Web Applications
What Is Fast Enough?
Measuring Latency
When Latency Goes Bad
Threading
Ensuring Responsiveness
Web Workers
Gears
Timers
Effects of Memory Use on Response Time
Virtual Memory
Troubleshooting Memory Issues
Summary
3. Splitting the Initial Payload
Kitchen Sink
Savings from Splitting
Finding the Split
Undefined Symbols and Race Conditions
Case Study: Google Calendar
4. Loading Scripts Without Blocking
Scripts Block
Making Scripts Play Nice
XHR Eval
XHR Injection
Script in Iframe
Script DOM Element
Script Defer
document.write Script Tag
Browser Busy Indicators
Ensuring (or Avoiding) Ordered Execution
Summarizing the Results
And the Winner Is
5. Coupling Asynchronous Scripts
Code Example: menu.js
Race Conditions
Preserving Order Asynchronously
Technique 1: Hardcoded Callback
Technique 2: Window Onload
Technique 3: Timer
Technique 4: Script Onload
Technique 5: Degrading Script Tags
Multiple External Scripts
Managed XHR
DOM Element and Doc Write
General Solution
Single Script
Multiple Scripts
Asynchronicity in the Real World
Google Analytics and Dojo
YUI Loader Utility
6. Positioning Inline Scripts
Inline Scripts Block
Move Inline Scripts to the Bottom
Initiate Execution Asynchronously
Use Script Defer
Preserving CSS and JavaScript Order
Danger: Stylesheet Followed by Inline Script
Inline Scripts Aren’t Blocked by Most Downloads
Inline Scripts Are Blocked by Stylesheets
This Does Happen
7. Writing Efficient JavaScript
Managing Scope
Use Local Variables
Scope Chain Augmentation
Efficient Data Access
Flow Control
Fast Conditionals
Fast Loops
String Optimization
String Concatenation
Trimming Strings
Avoid Long-Running Scripts
Yielding Using Timers
Timer Patterns for Yielding
Summary
8. Scaling with Comet
How Comet Works
Transport Techniques
Polling
Long Polling
Forever Frame
XHR Streaming
Future Transports
Cross-Domain
Effects of Implementation on Applications
Managing Connections
Measuring Performance
Protocols
Summary
9. Going Beyond Gzipping
Why Does This Matter?
What Causes This?
Quick Review
The Culprit
Examples of Popular Turtle Tappers
How to Help These Users?
Design to Minimize Uncompressed Size
Educate Users
Direct Detection of Gzip Support
10. Optimizing Images
Two Steps to Simplify Image Optimization
Image Formats
Background
Characteristics of the Different Formats
More About PNG
Automated Lossless Image Optimization
Crushing PNGs
Stripping JPEG Metadata
Converting GIF to PNG
Optimizing GIF Animations
Smush.it
Progressive JPEGs for Large Images
Alpha Transparency: Avoid AlphaImageLoader
Effects of Alpha Transparency
AlphaImageLoader
Problems with AlphaImageLoader
Progressively Enhanced PNG8 Alpha Transparency
Optimizing Sprites
?ber-Sprite Versus Modular Sprite
Highly Optimized CSS Sprites
Other Image Optimizations
Avoid Scaling Images
Crush Generated Images
Favicons
Apple Touch Icon
Summary
11. Sharding Dominant Domains
Critical Path
Who’s Sharding?
Downgrading to HTTP/1.0
Rolling Out Sharding
IP Address or Hostname
How Many Domains
How to Split Resources
Newer Browsers
12. Flushing the Document Early
Flush the Head
Output Buffering
Chunked Encoding
Flushing and Gzip
Other Intermediaries
Domain Blocking During Flushing
Browsers: The Last Hurdle
Flushing Beyond PHP
The Flush Checklist
13. Using Iframes Sparingly
The Most Expensive DOM Element
Iframes Block Onload
Parallel Downloads with Iframes
Script Before Iframe
Stylesheet Before Iframe
Stylesheet After Iframe
Connections per Hostname
Connection Sharing in Iframes
Connection Sharing Across Tabs and Windows
Summarizing the Cost of Iframes
14. Simplifying CSS Selectors
Types of Selectors
ID Selectors
Class Selectors
Type Selectors
Adjacent Sibling Selectors
Child Selectors
Descendant Selectors
Universal Selectors
Attribute Selectors
Pseudo-Classes and Pseudo-Elements
The Key to Efficient CSS Selectors
Rightmost First
Writing Efficient CSS Selectors
CSS Selector Performance
Complex Selectors Impact Performance (Sometimes)
CSS Selectors to Avoid
Reflow Time
Measuring CSS Selectors in the Real World
Appendix: Performance Tools
Index
猜您喜欢