Gespeichert in:
Beteilige Person: | |
---|---|
Format: | Buch |
Sprache: | Englisch |
Veröffentlicht: |
Sebastopol, CA [u.a.]
O'Reilly
2009
|
Ausgabe: | 1. ed. |
Links: | http://deposit.dnb.de/cgi-bin/dokserv?id=3281323&prov=M&dok_var=1&dok_ext=htm http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=018600741&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
Umfang: | XIX, 231 S. Ill., graph. Darst., Kt. |
ISBN: | 9780596522308 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV024629110 | ||
003 | DE-604 | ||
005 | 20130125 | ||
007 | t| | ||
008 | 090924s2009 xx abd| |||| 00||| eng d | ||
020 | |a 9780596522308 |9 978-0-596-52230-8 | ||
035 | |a (OCoLC)552986904 | ||
035 | |a (DE-599)BVBBV024629110 | ||
040 | |a DE-604 |b ger |e rakwb | ||
041 | 0 | |a eng | |
049 | |a DE-83 |a DE-Aug4 |a DE-863 | ||
084 | |a ST 252 |0 (DE-625)143627: |2 rvk | ||
100 | 1 | |a Souders, Steve |e Verfasser |0 (DE-588)133816850 |4 aut | |
245 | 1 | 0 | |a Even faster web sites |b [performance best practices for web developers] |c Steve Souders |
250 | |a 1. ed. | ||
264 | 1 | |a Sebastopol, CA [u.a.] |b O'Reilly |c 2009 | |
300 | |a XIX, 231 S. |b Ill., graph. Darst., Kt. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
856 | 4 | |q text/html |u http://deposit.dnb.de/cgi-bin/dokserv?id=3281323&prov=M&dok_var=1&dok_ext=htm |3 Inhaltstext | |
856 | 4 | 2 | |m HBZ Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=018600741&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-018600741 |
Datensatz im Suchindex
_version_ | 1819260155487846400 |
---|---|
adam_text | Titel: Even faster web sites
Autor: Souders, Steve
Jahr: 2009
Table of Contents
Credits xi
Preface xiii
1. Understanding Ajax Performance 1
Trade-offs 1
Principles of Optimization 1
Ajax 4
Browser 4
Wow! 5
JavaScript 6
Summary 6
2. Creating Responsive Web Applications 7
What Is Fast Enough? 9
Measuring Latency 10
When Latency Goes Bad 12
Threading 12
Ensuring Responsiveness 13
Web Workers 14
Gears 14
Timers 16
Effects of Memory Use on Response Time 17
Virtual Memory 18
Troubleshooting Memory Issues 18
Summary 19
3. Splitting the Initial Payload 21
Kitchen Sink 21
Savings from Splitting 22
Finding the Split 23
Undefined Symbols and Race Conditions 24
Case Study: Google Calendar 25
4. Loading Scripts Without Blocking 27
Scripts Block 27
Making Scripts Play Nice 29
XHR Eval 29
XHR Injection 31
Script in Iframe 31
Script DOM Element 32
Script Defer 32
document.write Script Tag 33
Browser Busy Indicators 33
Ensuring (or Avoiding) Ordered Execution 35
Summarizing the Results 36
And the Winner Is 38
5. Coupling Asynchronous Scripts 41
Code Example: menu.js 42
Race Conditions 44
Preserving Order Asynchronously 45
Technique 1: Hardcoded Callback 46
Technique 2: Window Onload 47
Technique 3: Timer 48
Technique 4: Script Onload 49
Technique 5: Degrading Script Tags 50
Multiple External Scripts 52
Managed XHR 52
DOM Element and Doc Write 56
General Solution 59
Single Script 59
Multiple Scripts 60
Asynchronicity in the Real World 63
Google Analytics and Dojo 63
YUI Loader Utility 65
6. Positioning Inline Scripts 69
Inline Scripts Block 69
Move Inline Scripts to the Bottom 70
Initiate Execution Asynchronously 71
Use Script Defer 73
Preserving CSS and JavaScript Order 73
Danger: Stylesheet Followed by Inline Script 74
Inline Scripts Aren t Blocked by Most Downloads 74
Inline Scripts Are Blocked by Stylesheets 75
This Does Happen 77
7. Writing Efficient JavaScript 79
Managing Scope 79
Use Local Variables 81
Scope Chain Augmentation 83
Efficient Data Access 85
Flow Control 88
Fast Conditionals 89
Fast Loops 93
String Optimization 99
String Concatenation 99
Trimming Strings 100
Avoid Long-Running Scripts 102
Yielding Using Timers 103
Timer Patterns for Yielding 105
Summary 107
8. Scaling with Comet 109
How Comet Works 109
Transport Techniques 111
Polling HI
Long Polling 112
Forever Frame 113
XHR Streaming 115
Future Transports 116
Cross-Domain 116
Effects of Implementation on Applications 118
Managing Connections 118
Measuring Performance 119
Protocols 119
Summary I-IO
9. Going Beyond Gzipping 121
Why Does This Matter? 121
What Causes This? 123
Quick Review
The Culprit 123
Examples of Popular Turtle Tappers 124
How to Help These Users? 124
Design to Minimize Uncompressed Size 125
Educate Users 129
Direct Detection of Gzip Support 130
10. Optimizing Images 133
Two Steps to Simplify Image Optimization 134
Image Formats 135
Background 135
Characteristics of the Different Formats 137
More About PNG 139
Automated Lossless Image Optimization 141
Crushing PNGs 142
Stripping JPEG Metadata 143
Converting GIF to PNG 144
Optimizing GIF Animations 144
Smush.it 145
Progressive JPEGs for Large Images 145
Alpha Transparency: Avoid AlphalmageLoader 146
Effects of Alpha Transparency 147
AlphalmageLoader 149
Problems with AlphalmageLoader 150
Progressively Enhanced PNG8 Alpha Transparency 151
Optimizing Sprites 153
Uber-Sprite Versus Modular Sprite 154
Highly Optimized CSS Sprites 155
Other Image Optimizations 155
Avoid Scaling Images 155
Crush Generated Images 156
Favicons 157
Apple Touch Icon 158
Summary 159
11. Shading Dominant Domains 161
Critical Path 161
Who s Sharding? 163
Downgrading to HTTP/1.0 165
Rolling Out Sharding 168
IP Address or Hostname 168
How Many Domains 168
How to Split Resources 168
Newer Browsers 169
12. Flushing the Document Early 171
Flush the Head 171
Output Buffering 173
Chunked Encoding 175
Flushing and Gzip 176
Other Intermediaries 177
Domain Blocking During Flushing 178
Browsers: The Last Hurdle 178
Flushing Beyond PHP 179
The Flush Checklist 180
13. Using Iframes Sparingly 181
The Most Expensive DOM Element 181
Iframes Block Onload 182
Parallel Downloads with Iframes 184
Script Before Iframe 184
Stylesheet Before Iframe 185
Stylesheet After Iframe 186
Connections per Hostname 187
Connection Sharing in Iframes 187
Connection Sharing Across Tabs and Windows 188
Summarizing the Cost of Iframes 190
14. Simplifying CSS Selectors 191
Types of Selectors 191
ID Selectors 192
Class Selectors 193
Type Selectors 193
Adjacent Sibling Selectors 193
Child Selectors 193
Descendant Selectors 193
Universal Selectors 194
Attribute Selectors 194
Pseudo-Classes and Pseudo-Elements 194
The Key to Efficient CSS Selectors 194
Rightmost First 195
Writing Efficient CSS Selectors 195
CSS Selector Performance 197
Complex Selectors Impact Performance (Sometimes) 197
CSS Selectors to Avoid 200
ReflowTime 201
Measuring CSS Selectors in the Real World 202
Appendix: Performance Tools 205
Index 221
|
any_adam_object | 1 |
author | Souders, Steve |
author_GND | (DE-588)133816850 |
author_facet | Souders, Steve |
author_role | aut |
author_sort | Souders, Steve |
author_variant | s s ss |
building | Verbundindex |
bvnumber | BV024629110 |
classification_rvk | ST 252 |
ctrlnum | (OCoLC)552986904 (DE-599)BVBBV024629110 |
discipline | Informatik |
edition | 1. ed. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01232nam a2200301 c 4500</leader><controlfield tag="001">BV024629110</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20130125 </controlfield><controlfield tag="007">t|</controlfield><controlfield tag="008">090924s2009 xx abd| |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9780596522308</subfield><subfield code="9">978-0-596-52230-8</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)552986904</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV024629110</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakwb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-83</subfield><subfield code="a">DE-Aug4</subfield><subfield code="a">DE-863</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 252</subfield><subfield code="0">(DE-625)143627:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Souders, Steve</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)133816850</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Even faster web sites</subfield><subfield code="b">[performance best practices for web developers]</subfield><subfield code="c">Steve Souders</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">1. ed.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Sebastopol, CA [u.a.]</subfield><subfield code="b">O'Reilly</subfield><subfield code="c">2009</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XIX, 231 S.</subfield><subfield code="b">Ill., graph. Darst., Kt.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="856" ind1="4" ind2=" "><subfield code="q">text/html</subfield><subfield code="u">http://deposit.dnb.de/cgi-bin/dokserv?id=3281323&prov=M&dok_var=1&dok_ext=htm</subfield><subfield code="3">Inhaltstext</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">HBZ Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=018600741&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-018600741</subfield></datafield></record></collection> |
id | DE-604.BV024629110 |
illustrated | Illustrated |
indexdate | 2024-12-20T13:59:06Z |
institution | BVB |
isbn | 9780596522308 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-018600741 |
oclc_num | 552986904 |
open_access_boolean | |
owner | DE-83 DE-Aug4 DE-863 DE-BY-FWS |
owner_facet | DE-83 DE-Aug4 DE-863 DE-BY-FWS |
physical | XIX, 231 S. Ill., graph. Darst., Kt. |
publishDate | 2009 |
publishDateSearch | 2009 |
publishDateSort | 2009 |
publisher | O'Reilly |
record_format | marc |
spellingShingle | Souders, Steve Even faster web sites [performance best practices for web developers] |
title | Even faster web sites [performance best practices for web developers] |
title_auth | Even faster web sites [performance best practices for web developers] |
title_exact_search | Even faster web sites [performance best practices for web developers] |
title_full | Even faster web sites [performance best practices for web developers] Steve Souders |
title_fullStr | Even faster web sites [performance best practices for web developers] Steve Souders |
title_full_unstemmed | Even faster web sites [performance best practices for web developers] Steve Souders |
title_short | Even faster web sites |
title_sort | even faster web sites performance best practices for web developers |
title_sub | [performance best practices for web developers] |
url | http://deposit.dnb.de/cgi-bin/dokserv?id=3281323&prov=M&dok_var=1&dok_ext=htm http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=018600741&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT souderssteve evenfasterwebsitesperformancebestpracticesforwebdevelopers |