
| 《更快速网站(影印版)》是由东南大学出版社出版的。 |
| 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 |
商品评论(0条)