-
- Weitere Informationen zu diesem Buch:
Inhaltsverzeichnis | Index | Probekapitel | Kolophon | Rezensionen |
- Weitere Informationen zu diesem Buch:
First Edition Juli 2006
ISBN 978-0-596-10180-0
Weitere Informationen zu diesem Buch
Inhaltsverzeichnis |
Index |
Probekapitel |
Kolophon |
Rezensionen |
Index
[ Symbols ], [ Numbers ], [ A ], [ B ], [ C ], [ D ], [ E ], [ F ], [ G ], [ H ], [ I ], [ J ], [ K ], [ L ], [ M ], [ N ], [ O ], [ P ], [ Q ], [ R ], [ S ], [ T ], [ U ], [ V ], [ W ], [ X ], [ Y ], [ Z ],
Symbols[ Top ]
$( ) alias, 23
$( ) convenience function
web remoting, 25
.NET Ajax frameworks, 586-590
<script> tag, 114
Numbers[ Top ]
204 response, 107
37Signals
Backpack, 451
37signals, 447, 450, 455
A[ Top ]
A9, 3, 230
Highlight, 470
Maps, 393
accessibility, 44
ACE (see Ajax Client Engine)
ActiveMQ, 237
ActiveX
Building ActiveX Controls for IE, 157
Richer Plugin, 149
Adams, Cameron, 404
Adaptor pattern, 244
addEvent( ), 136
AES, 496
AJASON, 597
Ajax, 559
acronym, 6
giving something back, 5
portals, 6-9
portlets, 7
rise of, 5
trends, 17-20
browser adoption, 18
desktop, 18
development support, 20
Flash, 18
hardware and bandwidth improvements, 20
JavaScript, 20
local storage, 19
rich graphics, 19
standards and fragmentation, 17
two-way web, 19
user acceptance, 18
XForms, 19
Ajax applications
characteristics of, 10-13
continuous interaction, 11
live, 11
new styles of interactions, 13
not just web sites, 11
standards-based, 13
supportive, 11
visual effects, 11
widgets, 13
Ajax Apps, 59-67
Ajax Deluxe, 62
Ajax Lite, 62
bandwidth, 63
browser compatibility, 62
browser-processessing power, 63
browsers and, 60-61
desktop apps, advantages over, 66
Flash and, 64
Java applets, advantages over, 65
latency, 63
Ajax Apps (continued)
making richer, 150
mobile apps, 67
networking capacity, 63
throughput requirements, 63
web apps, advantages over, 64
XMLHttpRequest, 62
Ajax Blog, 183
Ajax calendar, 62
Ajax Client Engine (ACE), 211, 212, 213, 577
Ajax Deluxe, 62
Ajax frameworks and libraries, 567-600
.NET, 586-590
Ajax.NET, 586
AjaxAspects, 586
Anthem.NET, 586
Atlas, 587
Bitkraft, 587
ComfortASP.NET, 588
MagicAjax.NET, 588
MonoRail, 588
WebORB for .NET, 589
zumiPage, 589
Backbase
JavaScript multipurpose, 568
C++
Wt, 585
ColdFusion
AjaxCFC, 585
JSMX, 585
Java, 590-595
AJAX JSP Tag Library, 590
AjaxAnywhere, 590
AJAX-JSF, 591
Direct Web Remoting (DWR), 591
Echo 2, 591
Guise, 592
ICEfaces, 592
JSON-RPC-Java, 592
JSP Controls Tag Library, 593
jWic, 593
Struts-Layout, 593
SWATO, 593
Tacos Tapestry Components, 594
ThinkCAP JX, 594
WebORB, 595
WidgetServer, 595
JavaScript effects
FAT, 580
Moo.fx, 580
JavaScript Flash, 581
AMFPHP, 581
Flash JavaScript Integration Kit, 581
Stream, 581
JavaScript multipurpose, 568-577
AjaxFace, 568
Bindows, 569
Dojo, 569
EBA, 570
Engine for Web Applications, 570
Freja, 571
Interactive Website Framework, 576
Mochikit, 571
OpenRico, 572
Plex Toolkit, 572
Prototype, 573
qooxdoo, 573
Scriptaculous, 573
SmartClient, 574
ThyAPI, 575
TIBCO General Interface, 575
Zimbra AjaxTK, 576
JavaScript remoting, 577-580
Ajax Client Engine, 577
AjaxCaller, 577
AjaxGear, 578
AJFORM, 578
HtmlHttpRequest, 578
JSMX, 578
libXmlRequest, 579
MAJAX, 579
RSLite, 579
Sack, 580
Subsys_JsHttpRequest, 580
XHConn, 580
JavaScript specialized
Drag-Drop library, 582
GSV, 582
JavaScript XML, 582
Google AJAXSLT, 582
Sarissa, 582
Lisp, 595
CL-Ajax, 595
multilanguage, 582-585
CPAINT, 583
JSON, 583
JSON-RPC, 583
JSRS, 583
Rialto, 584
SAJAX, 584
ZK-AJAX/XUL, 584
Perl, 596
CGI::Ajax, 596
HTML::Prototype, 596
PHP, 596-600
AJASON, 597
AjaxAC, 597
Cajax, 597
HTSWaf, 598
JPSPAN, 598
NAJAX, 599
PEAR::HTML::Ajax, 598
Pipeline, 598
Symfony, 599
XAJAX, 599
XOAD, 599
Python, 600
CrackAJAX, 600
Turbo Gears, 600
Ruby On Rails, 600
AJAX JSP Tag Library, 590
Ajax Lite, 62
Ajax Login Demo, 491-493
Ajax Pages, 269
Ajax Patterns Demo
code, 601-603
Ajax Patterns Demos, 54-55
Ajax Patterns overview, 47-48
Ajax Patterns Reader, 552, 556, 559
Logging, 536
System Test, 563
Ajax Shop Demo, 480-486
cart management, 482
mailing cart contents, 483
retrieval of categories and items, 482
tracking favorite categories, 483
verifying password and email, 484
Ajax spell checker, 76
Ajax Stub, 161, 182-186
Ajax Blog, 183
AjaxPatterns SAJAX Sum, 185
alternatives, 185
CL-AJAX, 185
code refactoring, 185
CPAINT, 184
decisions, 183
DWR, 183, 184
examples, 184
JPSpan, 183
JSON Message, 186, 207
related patterns, 186
RESTful Service, 184
RPC Service, 181, 186
SAJAX, 184
securing server-side functions, 183
SOAP, 186
solution, 182
XMLHttpRequest Call, 185
XML-RPC, 186
Ajax Stub frameworks, 178
Ajax technologies, 14-15
CGI, 14
CSS, 14
DOM, 15
event model, 15
form submission, 14
HTML/XHTML, 14
HTTP, 14
JavaScript, 14
server-side scripting, 14
Web Remoting, 15
XML, 15
Ajax.NET, 586
Ajax.Net, 204
AjaxAC, 597
Ajaxagram, 29-33
web service, 29
ajaxagram.css, 35
ajaxagram.js, 29, 31
AjaxAnywhere, 590
AjaxAspects, 586
AjaxCaller, 577
AjaxCaller library, 213
AjaxCFC, 585
AjaxFace, 568
AjaxGear, 578
AJAX-JSF, 591
AjaxPattern On-Demand JavaScript Wiki, 129
AjaxPatterns Assistive Search, 226
AjaxPatterns Basic Wiki, 83, 322-324
AjaxPatterns Basic Wiki Demo, 148
AjaxPatterns Data Island Sum, 257-258
AjaxPatterns Distributed Events Wiki Demo, 237-242
AjaxPatterns Form-Based Sum, 230-232
AjaxPatterns HeartBeat Wiki, 512-514
list of online users, 514
periodic loop, 513
AjaxPatterns Periodic Time, 219
AjaxPatterns Portal, 314
AjaxPatterns Predictive Fetch Sum, 301
AjaxPatterns Restful Shop Demo, 173-175
AjaxPatterns RPC Shop Demo, 180
AjaxPatterns SAJAX Sum, 185
AjaxPatterns Spotlight Time, 452-454
AjaxPatterns Status Wiki, 429-431
AjaxPatterns Streaming Wiki, 120
AjaxPatterns Templating Drilldown Demo, 270-273
AjaxPatterns TestAjaxCaller, 90, 103-105
AjaxPatterns Timeout Wiki, 505-508
monitoring mouse movements, 507
unconditional timeout, 505
warning message, 506
AjaxPatterns Unique URL Sum, 524-529
Full IFrame Sum Demo, 527
IFrame source, 528
IFrame Sum Demo, 526
Polling URL Sum Demo, 525
synchronization logic, 528
Unique URL Sum Demo, 525
AjaxPatterns Wiki, 413-415
Highlight, 470
AjaxPatterns Wiki Links Page, 349
AjaxPatterns XML Sum, 200
AjaxPatterns XSLT Drilldown Demo, 263-264
AJAX-S
Browser-Side XSLT, 262
Ajax-S, 76
AjaxTags, 280
AJFORM, 578
Alexander, Christopher, 605
altKey, 140
Am I Ajax Or Not, 40
AMASS, 320
Amazon, 365, 480
A9 search engine (see A9)
Diamond Search, 333, 339, 372
Mini Shop, 153, 155-156
public APIs, 245
Zuggest, 190, 340
Submission Throttling, 225
AMFPHP, 581
Amigo, Gustavo Ribeiro, 269
anagram.php, 29
anagram.phtml, 29, 30
AnagramTest.php, 30
animation loop, 460
Anthem.NET, 586
Anyterm, 10, 103
appendChild( ), 72
architectures, archetypal, 61
are, 156
Arthur, Kevin, 122
Ashley, Brent, 107
Assistive Search Demo, 379-382
Assistive Search demo, 374
asXMLTag( ), 349
asynchronous calls, 94
asynchrony, 46
Atlas, 587
Atom, 172
atomic processing, 212
B[ Top ]
Backbase, 279, 424, 530, 568
Browser-Side Templating, 270
Portal, 345, 392
One-Second Motion, 465
XMLHttpRequest Call, 103
Backpack, 147
RESTful Service, 169
User Action, 141
Baekdal, Thomas, 3, 413
bandwidth, 20, 46, 63
Basic AjaxPatterns Demos, 142
Basic Sum Demo, 341, 524
Basic Wiki Demo, 505
Behavior Message, 125
On-Demand JavaScript, 131
Berners-Lee, Tim, 530
Betfair, 345, 385
Status Area, 429
Bill Gates' Wealth Clock, 247
Bindows, 569
Bitkraft, 587
Blogger, 172
Blowfish, 496
Blummy, 479
Bone, Jeff, 177
bookmarklets, 41, 157
manager, 479
Boston.com, 334
Brattli, Thomas, 131
browser compatibility, 62
issues, 284
Browser Controller, 561
Browser Simulation, 561
Browser Status Bar, 431
Browser UIs, 110
browser-processessing power, 63
browsers
Ajax Apps and, 60-61
built-in browser cache, 296
feature support, 287
browser-server dialogue, 209-251
Call Tracking (see Call Tracking)
Cross-Domain Proxy (see Cross-Domain Proxy)
Distributed Events (see Distributed Events)
Explicit Submission (see Explicit Submission)
Periodic Refresh (see Periodic Refresh)
Submission Throttling (see Submission Throttling)
Browser-Side Cache, 39, 157, 289-297, 350, 355, 367, 382, 439
alternatives, 296
built-in browser cache, 296
cache size considerations, 292
Cached Sum Demo, 293-296
code example, 293-296
decisions, 292-293
dequeue( ), 295
encache( ), 295
enqueue( ), 295
examples, 293
finite cache, 295
infinite cache, 294
keys and values, 292
libXmlRequest, 293
onSumResponsenot, 294
Periodic Refresh, 220
Predictive Fetch, 298, 302
queryCache( ), 296
related patterns, 297
repaintSum( ), 294
sendToTail( ), 295
server-side cache, 297
solution, 290-292
stale data, 292
Submission Throttling, 297
submitSum( ) queries, 296
Virtual Workspace, 443
XML Data Island, 256, 259
XMLHttpRequest Call, 290, 293
Browser-Side Templating, 39, 265-273, 282
Ajax Pages, 269
AjaxPatterns Templating Drilldown Demo, 270-273
alternatives, 273
Backbase, 270
Browser-Side XSLT, 265, 273
code in template, 268
code refactoring, 270-273
decisions, 268-269
examples, 269-270
improving template context, 272
JavaScript Templates (JST), 269
JSON Message, 273
obtaining the template, 268
preparing template context, 268
related patterns, 273
rendering from template, 271
solution, 266-268
XML Data Island, 259
XML Message, 198, 273
Browser-Side Test, 549, 554-557, 560, 561, 564
Browser-Side Test
Logging, 557
code example, 556
JsUnit, 556
related patterns, 557
Scriptaculous, 555
Service Test, 557
solution, 554
tool support, 555
xUnit, 555
Browser-Side XSLT, 39, 259-265
AjaxPatterns XSLT Drilldown Demo, 263-264
AJAX-S, 262
alternatives, 265
Browser-Side Templating, 265, 273
code refactoring, 263-264
decisions, 261
examples, 262
Google Maps, 262
Kupu, 262
obtaining stylesheet, 261
related patterns, 265
Sarissa, 263
solution, 260-261
XML Data Island, 256, 259, 265
XML Message, 265
built-in browser cache, 296
Business Card Creator, 413
button, 140
C[ Top ]
C++ Ajax frameworks
Wt, 585
Cached Sum Demo, 293-296
Caesar, 496
Cajax, 597
calendar, 82
call context, 212
Call Tracking, 38, 95, 209-214
Ajax Client Engine (ACE), 211, 212, 213
AjaxCaller library, 213
alternatives, 214
atomic processing, 212
call context, 212
code example, 213
examples, 212
Fire-and-Forget, 214
global XMLHttpRequest, 214
IFrame Call, 110
libXmlRequest, 213
limiting, 212
logging, 212
pooling, 211
Predictive Fetch, 214
sequencing, 212
solution, 210
timeouts, detecting, 212
callback, 136
Categorization of Test Doubles, 553
Category, 349
CGI, 14
CGI::Ajax, 596
chat, two-person, 40
chat.app, 451
Chen, Zhijie, 594
childNodes[], 72
Chipman, Steven, 544
CL-AJAX, 185, 595
clearTimeout, 146
click `n' wait, 142
clientX, clientY, 140
Close Consultants, 493
code for Chapter 2 and Ajax Patterns Demo, 601-603
ColdFusion Ajax frameworks
AjaxCFC, 585
JSMX, 585
Coloir, 451
Comfort.ASP, 280
ComfortASP.NET, 588
compatibility, 44, 46
consistency, 61
cookies
Lazy Registration, 477, 478
Costello, Roger, 177
Cote, Stephen W., 293, 571
Couvreur, Julien, 545
Cowin, Richard, 444
CPAINT, 184, 583
CPaint, 248
CrackAJAX, 600
Craigslist, 246
Creative Commons web site, 385
Creative Commons' issueLicense web service, 250
Crockford, Douglas, 126
Cross-Browser Component, 275, 283-288, 357
browser-feature support, 287
code example, 287
decisions, 285
examples, 287
HTMLHttpRequest library, 287
incompatibility issues, 284
more information, 288
On-Demand JavaScript, 288
related patterns, 288
Server-Side Code Generation, 288
solution, 284
transparency, 284
XMLHttpRequest, 284
Cross-Domain Portlet, 423
Cross-Domain Proxy, 39, 40, 209, 243-251, 349, 423
Adaptor pattern, 244
alternatives, 250
Bill Gates' Wealth Clock, 247
code example, 248-250
connecting to external server, 245
CPaint, 248
Craigslist, 246
decisions, 244
document.domain, 250
external content, 244
Facade, 244
Google Maps, 246, 251
Housing Maps, 246
images, 251
more information, 251
On-Demand JavaScript, 250
Performance Optimization Patterns, 251
Portlet, 427
related patterns, 251
solution, 244
Web Service, 91
WPLicense, 248-250
handling user answers, 250
retrieving license questions, 249
retrieving license types, 249
WPLicense Wordpress plugin, 246
Cross-Domain Scripting, 125
On-Demand JavaScript, 125
CSS, 14
ajaxagram.css, 35
CSS stylesheet call, 107
ctrlKey, 140
Curran, Peter, 493
customization, 45
D[ Top ]
Dam, James, 491, 493
Data Grid, 39, 375
Data Grid widget, 350-355
code example, 353
Delta Vacations, 353
examples, 352
NumSum, 352
Oddpost, 353
OpenRico, 352, 353
read-only or mutable, 352
related patterns, 354
solution, 351
Debugging, 533, 537-539
JavaScript HTML Debugger, 539
Microsoft Script Debugger, 538
solution, 537
tool support, 538
Venkman, 538
debugging
decision whether or not to debug, 538
Delicious, 365
On-Demand JavaScript, 127
public APIs, 245
Delicious JSON Feed, 203
Delta Vacations, 353, 372, 374
Demo RSS Reader, 103
design, 43-55
Ajax Patterns Demos, 54-55
Ajax Patterns overview, 47-48
desireable attributes of Ajax applications, 43
patterns
anatomy, 48-54
software design principles, 45
usability, 44
desktop, 18
desktop apps
advantage of Ajax Apps over, 66
desktop client, 156, 325
developer productivity, 43
Development Environment (SPADE), 156
Development patterns, ix, 40
DHTML Lemmings, 396, 397-400
Fat Client, 322
One-Second Motion, 465
One-Second Mutation, 458
diagnosis, 533-547
Debugging (see Debugging)
DOM Inspection (see DOM Inspection)
Logging (see Logging)
Traffic Sniffing (see Traffic Sniffing)
Diamonds, Jason, 586
Digg Spy, 76, 189, 190, 433, 434
One-Second Spotlight, 451
Direct Login, 473, 487-493
Ajax Login Demo, 491-493
code example, 491-493
decisions, 490
hashing algorithm, 490
Host-Proof Hosting, 493, 498
Lazy Registration, 486, 493
NetVibes, 491
one-time seed, 490
Protopage, 491
related patterns, 493
seed, 492
solution, 488-490
Timeout, 493, 508
Treehouse Magazine, 491
Direct Web Remoting (DWR), 591
display demo, 23
Display Morphing, 69-78
Ajax spell checker, 76
AjaxPatterns Countdown Demo, 77
Ajax-S, 76
classname or style, 74
code example, 77
decisions, 74-76
Digg Spy, 76
DOM, 70-74
appendChild( ), 72
childNodes[], 72
getElementsByTagName( ), 72
id, 72
insertBefore( ), 72
nodeType, 72
parentNode, 71
removeChild( ), 72
tagName, 72
examples, 76
more information, 78
One-Second Mutation, 456
Page Rearrangement, 78, 83
properties, 75
related patterns, 78
src, 76
style.backgroundColor, 75
style.backgroundImage, 75
style.borderColor, 75
style.borderWidth, 75
style.fontColor, 75
style.fontStyle, 75
style.fontWeight, 75
style.innerHTML, 76
style.outerHTML, 76
stylefontSize, 75
User Action, 143
Distributed Events, 19, 209, 232-242, 342
ActiveMQ, 237
addListener( ), 234
AjaxPatterns Distributed Events Wiki Demo, 237-242
Browser-to-Browser, 234
Browser-to-Server, 234
code refactoring, 237-242
decisions, 235-236
Dojo Events library, 237
event mechanism, 237-240
event notification, 235
examples, 237
history versus current state, 235
HTTP Streaming, 234, 242
LivePage, 237
MapBuilder, 237
Observer-style events, 235
onUpdate( ), 234
Periodic Refresh, 234, 242
Portlet, 426
processing events synchronously or asynchronously, 236
related patterns, 242
removeListener( ), 234
RESTful Service, 242
Server-to-Browser, 234
Server-to-Server, 234
solution, 233-235
watchlist, 240
XML Data Island, 242
Dobrado, 424
Document Object Model (DOM), 61, 70-74
appendChild( ), 72
childNodes[], 72
getElementsByTagName( ), 72
id, 72
insertBefore( ), 72
nodeType, 72
parentNode, 71
removeChild( ), 72
tagName, 72
document.domain, 250
document.getElementById( ), 23
Dojo, 569
Events library, 237
On-Demand JavaScript, 128
Dojo Rich Text Editor, 357
Dojo Toolkit, 563
Unique URLs, 523
DOM, 15
DOM Inspection, 71, 533, 540-544
alternatives, 544
DOM Inspector tool (Firefox), 541
IE Developer Toolbar, 542
IEDocMon, 544
Mouseover DOM Inspector, 544
solution, 540
tool support, 541-544
View Rendered Source, 542
Web Developer extension, 541
DOM Inspector tool (Firefox), 541
DOM population, 253-273
Browser-Side Templating (see Browser-Side Templating)
Browser-Side XSLT (see Browser-Side XSLT)
XML Data Island (see XML Data Island)
drag function, 335
Drag-and-Drop, 336, 382, 389-394
A9 Maps, 393
alternatives, 393
Backbase Portal, 392
code example, 393
decisions, 392
examples, 392
Fat Client, 326
libraries, 391
Magnetic Poetry, 392, 393
Popup, 406
Portlet, 394
related patterns, 393
Scriptaculous, 391
Slider, 394
solution, 390
Sprite, 393, 400
Virtual Workspace, 443
drag-and-drop cart, 40
Drag-Drop library, 582
Drilldown, 385, 388
Microlink, 421
Portlet, 426
Drilldown widget, 329, 343-350
alternatives, 349
Backbase portal, 345
Betfair, 345
code refactoring, 346-349
browser-side implementation, 347-349
further, 349
server-side implementation, 349
decisions, 345
dynamic content, 349
examples, 345
Live Search, 349
OpenRico framework, 346
related patterns, 350
solution, 343-345
Tree widget, 350
DWR, 183, 184
dynamic behavior, 133-148
E[ Top ]
eBusiness Applications (EBA) Ajax Components, 570
Echo2, 278, 591
Echo2 Number Guess, 280-282
GamePane class, 281
Eclipse, 378
efficiency, 44
Embedded Browser Scripts, 561, 564
Endecott, Phil, 103
Engine for Web Applications, 570
EvDB public APIs, 245
eVelocity, 499
event handlers, 141
event handling, 135
event model, 15
Event Model (DHTML), 61
event object attributes, 139
event type, 140
Excite.com, 7
Explicit Submission, 209, 227-232, 384
A9, 230
AjaxPatterns Form-Based Sum, 230-232
alternatives, 232
code refactoring, 230-232
decisions, 228
examples, 229
The Fonz, 230
frequent submissions, 229
Lace Chat, 229
Live Form, 232
Progress Indicator, 232
related patterns, 232
requesting submission, 228
solution, 228
Submission Throttling, 232
extended technologies, 149-157
Building ActiveX Controls for IE, 157
Firefox Extension Tutorial, 157
Richer Plugin (see Richer Plugin)
Tutorial: Creating a Mozilla Extension, 157
Extension
Richer Plugin, 149
F[ Top ]
Facade, 180, 244
Fade Anything Technique (FAT), 452, 580
fade effect, 36
Fat Client, 39, 156, 289, 317-326, 340, 382
AjaxPatterns Basic Wiki, 322-324
alternatives, 324
browsers, 319
business and application logic, 320
code example, 322-324
decisions, 320
desktop client, 325
DHTML Lemmings, 322
Drag-and-Drop, 326
examples, 321
Gmail, 321
Guesstimate, 310
Host-Proof Hosting, 326
JavaScript, 319
JS/UIX shell, 322
more information, 326
NumSum, 321
On-Demand JavaScript, 326
Periodic Refresh, 220, 325
persistence, 320
Predictive Fetch, 302
related patterns, 325
security, 319
solution, 317-320
Submission Throttling, 325
thin client, 324
Web Service, 320
FCKEditor, 357, 359-360
Fettig, Abe, 119
Fiddler, 546
Fielding, Roy, 176, 530
filesystem navigation, 40
findItems($name), 349
Fire-and-Forget, 214
Firefox
Amazon Mini Shop, 153
Google Suggests, 153
Google Toolbar, 153
Firefox "Prefetch", 300
Firefox Extension Tutorial, 157
Firefox extensions
View Rendered Source, 542
Web Developer, 541
flangelib.js library, 547
Flash, 18, 61
Odeo and, 154
Richer Plugin, 149
Flash app
Ajax Apps and, 64
Flash JavaScript Integration Kit, 581
Flickr, 3, 4, 9, 61, 180, 404, 410
public APIs, 245
The Fonz, 230
forces driving Ajax, 60
form submission, 14
Foundational Technology patterns, ix, 38
fragmentation, 17
frame call, 112
Freja, 571
Fuecks, Harry, 183
Full IFrame Sum Demo, 527
Full IFrame URL Sum Demo, 525
functionality, 33-36
Functionality and Usability patterns, ix, 39
fvLogger, 536
G[ Top ]
GamePane class, 281
Garrett, Jesse-James, 5
GET, 96
getElementsByTagName( ), 72
GetIFrameHtml( ), 359
GhostTrain, 562
Giant-Ass Image Viewer (GSV), 582
Giant-Ass Image Viewer (GSV) Library, 441
Gmail, 9
Fat Client, 321
Highlight, 470
Microlink, 419
storage space, 306
Submission Throttling, 225
Goodman, Danny, 520
Google AJAXSLT, 582
Google Homepage, 424
Google Maps, 3, 5, 9, 64, 334, 397, 529
Browser-Side XSLT, 262
Cross-Domain Proxy, 246
IFrame Call, 111
Predictive Fetch, 300
public APIs, 245
tiling, 400
User Action, 141
XML Message, 200
Google Maps API
Cross-Domain Proxy, 251
Google Reader
User Action, 141
Google Search
public APIs, 245
Google Suggest, 5, 146, 226, 362, 364, 368
Submission Throttling, 225
Google Suggests for Firefox, 153
Google Toolbar for Firefox, 153
Grand, Mark, 515
Greasemonkey
Richer Plugin, 149
Greenspun, Philip, 247
Griffes, Michael, 499
Guesstimate, 289, 303-310, 339, 342, 367
code example, 308-309
consolidating with real data, 305
curCount, 308
decisions, 305
doCountdown( ), 308
examples, 306
Fat Client, 310
Gmail
storage space, 306
historical data, 304
how often executed, 305
HTTP Streaming, 304
iTunes Counter, 306, 308-309
Lazy Registration, 486
Multi-Stage Download, 316
One-Second Motion, 468
Periodic Refresh, 220, 304, 310
Predictive Fetch, 302, 310
rate, 308
related patterns, 310
runCountdown( ), 308, 309
server support, 306
setCounters( ), 308
solution, 303-305
user knowledge, 305
Virtual Workspace, 443
Guise, 592
H[ Top ]
Hack
Richer Plugin, 149
Hansson, David Heinemeier, 600
hardware, 20
Hartley, Jeremy, 530
Heartbeat, 220, 473, 509-515
AjaxPatterns HeartBeat Wiki, 512-514
list of online users, 514
periodic loop, 513
code refactoring, 512-514
list of online users, 514
periodic loop, 513
decisions, 511
Last Seen or Last Request field, 511
maintaining user records, 511
more information, 515
period between Heartbeats, 512
Periodic Refresh, 515
related patterns, 515
solution, 510-511
stopping Heartbeats, 511
Submission Throttling, 515
Timeout, 508, 515
Hello World!, 22
Hertel, Matthias, 587
Hieatt, Edward, 556
Highlight, 352, 367, 446, 468-472
A9, 470
AjaxPatterns Wiki, 470
code example, 470
decisions, 469
examples, 470
Gmail, 470
Malleable Content, 415
One-Second Spotlight, 472
related patterns, 471
solution, 469
Status Area, 471
Teacher!, 470
Whitespace, 470
Hill, Tony, 177, 427
Hoffman, Thad, 256
Holst, Laurens, 530
Host-Proof Hosting, 473, 493-499
alternatives, 498
code example, 496
decisions, 496
Direct Login, 493, 498
encryption, 496
Fat Client, 326
more information, 498
pass-phrase request, 496
related patterns, 498
Richer Plugin, 498
solution, 494
Timeout, 498
HousingMaps, 194
Cross-Domain Proxy, 246
HoverSearch, 404
href property, 24
HTML, 14
HTML Message, 161, 186-191, 387
alternatives, 191
Amazon Zuggest, 190
code example, 190
decisions, 188
Digg Spy, 189, 190
examples, 189-190
JSON Message, 191
Multi-Stage Download, 190
On-Demand JavaScript, 131, 191
Plain-Text Message, 191
Rapha, 189
related patterns, 191
Server-Side Code Generation, 283
solution, 187
TalkDigger, 190
when to use, 187
XML Message, 191
HTML::Prototype, 596
HTMLHttpRequest
IFrame Call, 112
HtmlHttpRequest, 578
HTMLHttpRequest library, 287
HTSWaf, 598
HTTP Meta Refresh, 148
HTTP Streaming, 19, 85, 113-122
<script> tag, 114
AjaxPatterns Streaming Wiki, 120
alternatives, 121
closing connection, 118
code refactoring, 120
connection time, 118
decisions, 118
Distributed Events, 234, 242
flush( ), 115
Guesstimate, 304
IFrame Call, 115
Jotspot Live, 119
Lightstreamer, 120
LivePage, 119
messages, 118
more information, 122
onreadystatechange, 121
page streaming, 114, 115, 118
Periodic Refresh, 118, 121, 220
pollLatestResponse( ), 121
portable page updates, 117
Pushlets, 120
Realtime on Rails, 119
responseText property of XMLHttpRequest, 117
service streaming, 116, 117, 118
solution, 113-118
Stream, 122
TCP connection, 122
Update Control, 435
Web Service, 120
XMLHttpRequest Call, 106, 115
HTTPUnit, 563
Hussenet, Claude, 146, 218, 424, 425
I[ Top ]
ICEfaces, 592
id (node), 72
IE
Building ActiveX Controls for IE, 157
IE Developer Toolbar, 542
IEDocMon, 544
IFrame, 359
IFrame Call, 85, 108-112
Browser UIs, 110
Call Tracking, 110
examples, 111
frame call, 112
Google Maps, 111
HTMLHttpRequest, 112
HTTP Streaming, 115
Kuro5hin, 111
PXL8 Demo, 111
Scoop, 111
solution, 108-111
XMLHttpRequest Call, 105, 110, 112
IFrame source, 528
IFrame Sum Demo, 526
IFrame URL Sum Demo, 525
IFrame-URL technique, 520
images, 251
index.html, 29, 31
innerHTML, 24
insertBefore( ), 72
instant messaging clients, 10
IntelliJ, 378
Interactive Website Framework, 576
International Herald Tribune, 301
Ippolito, Bob, 536
Isaacs, Scott, 146
iTunes Counter, 146, 306, 308-309
J[ Top ]
Jakarta HTTPClient, 559
Java, 149
Richer Plugin, 149
Java Ajax frameworks, 590-595
AJAX JSP Tag Library, 590
AjaxAnywhere, 590
AJAX-JSF, 591
Direct Web Remoting (DWR), 591
Echo 2, 591
Guise, 592
ICEfaces, 592
JSON-RPC-Java, 592
JSP Controls Tag Library, 593
jWic, 593
Struts-Layout, 593
SWATO, 593
Tacos Tapestry Components, 594
ThinkCAP JX, 594
WebORB, 595
WidgetServer, 595
Java applets
Ajax Apps advantages over, 65
JavaScript, 11, 14, 20, 45, 61, 63, 157
Ajaxagram tutorial, 31
event model, 15
Fat Client, 319
handling events in, 26
registering events, 136
JavaScript effects Ajax frameworks
FAT, 580
Moo.fx, 580
JavaScript Flash frameworks, 581
AMFPHP, 581
Flash JavaScript Integration Kit, 581
Stream, 581
JavaScript HTML Debugger, 539
JavaScript JSON library, 202
JavaScript multipurpose frameworks, 568-577
AjaxFace, 568
Bindows, 569
Dojo, 569
EBA, 570
Engine for Web Applications, 570
Freja, 571
Interactive Website Framework, 576
Mochikit, 571
OpenRico, 572
Plex Toolkit, 572
Prototype, 573
qooxdoo, 573
Scriptaculous, 573
SmartClient, 574
ThyAPI, 575
TIBCO General Interface, 575
Zimbra AjaxTK, 576
Javascript Remote Scripting (JSRS), 583
JavaScript remoting frameworks, 577-580
Ajax Client Engine, 577
AjaxCaller, 577
AjaxGear, 578
AJFORM, 578
HtmlHttpRequest, 578
JSMX, 578
libXmlRequest, 579
MAJAX, 579
RSLite, 579
Sack, 580
Subsys_JsHttpRequest, 580
XHConn, 580
JavaScript specialized frameworks
Drag-Drop library, 582
GSV, 582
JavaScript Templates (JST), 269
JavaScript XML frameworks, 582
Google AJAXSLT, 582
Sarissa, 582
Johnson, Corey, 536
Jotspot, 357
Jotspot Live, 119
JPSPAN, 598
JPSpan, 183
JS/UIX shell, 322
JSCalc, 404, 405
JSMX, 578, 585
JSON, 126, 583
advantages over XML, 206
XML advantages over, 206
JSON Message, 124, 161, 201-207, 352
Ajax Stub, 186, 207
Ajax.Net, 204
alternatives, 205-206
Browser-Side Templating, 273
code example, 204
Delicious JSON Feed, 203
examples, 203
HTML Message, 191
Kiko, 203, 204
On-Demand JavaScript, 207
related patterns, 207
Route Planning, 204
solution, 202-203
stringify( ), 203
XML Message, 201, 205
JSON Message (see JSON Message)
JSONP, 124
JSON-PHP library, 203
JSON-RPC, 186, 583
JSON-RPC-Java, 592
JSP Controls Tag Library, 593
JsUnit, 556
JsUnit frameworks, 555
Justus, Chris, 368
jWic, 593
K[ Top ]
Katrina-Boston overlay map, 334
Kayak, 341, 364, 479
Multi-Stage Download, 313
Suggestion widget
code example, 365
key modifiers, 140
key pressing, 137
keyboard focus, 138
keyCode (IE), 140
keywords, 49
Kiko, 82
JSON Message, 203, 204
RPC Service, 179
Kirk, Alexander, 90, 479
Knabben, Frederico Caldeira, 357
Koch, Peter-Paul, 107, 288
Kruslicky, Christopher, 436
Kupu, 262
Kuro5hin, 111
L[ Top ]
Lace Chat, 504
Explicit Submission, 229
Periodic Refresh, 217, 218, 504
Plain-Text Message, 193, 195
Status Area, 429, 504
XMLHttpRequest Call, 102
Lacey, Steve, 479
latency, 46, 63
Lazy Loading, 125
On-Demand JavaScript, 131
Lazy Registration, 368, 473-487
Ajax Shop Demo, 480-486
cart management, 482
mailing cart contents, 483
retrieval of categories and items, 482
tracking favorite categories, 483
verifying password and email, 484
Amazon.com, 480
Blummy, 479
code example, 480-486
cart management, 482
mailing cart contents, 483
retrieval of categories and items, 482
tracking favorite categories, 483
verifying password and email, 484
cookies, 478
decisions, 477
Direct Login, 486, 493
examples, 479-480
Guesstimate, 486
Kayak, 479
Live Form, 486
MemeFlow, 479
more information, 487
Palmsphere, 479
Portlet, 479
profile, 477, 478
related patterns, 486
solution, 475-477
technologies
cookie manipulation and session tracking, 477
database, 477
XMLHttpRequest Call, 477
Timeout, 486
Lean IT Processes, 553
lean manufacturing, 551
Least Frequently Used (LFU), 292
Least Recently Used (LRU), 292
Leshem, Amir, 590
Ley, Jim, 204
libXmlRequest, 213, 293, 579
licenseClass selector, 387
Lightstreamer, 120
limiting, 212
Link, 349
Lisp Ajax frameworks, 595
CL-Ajax, 595
ListSomething.com, 372
Live Command-Line widget, 330, 376-383
alternatives, 382
Assistive Search Demo, 379-382
benefits, 377
Browser-Side Cache, 382
code example, 379-382
decisions, 378
Drag-and-Drop, 382
examples, 379
Fat Client, 382
Live Search, 382
monitoring loop, 380
more information, 383
partial commands, 378
point-and-click, 382
Progress Indicator, 382
related patterns, 382
server provided information, 378
solution, 376-378
Status Area, 382
Submission Throttling, 382
Suggestion, 383
YubNub, 379
Live Form
Explicit Submission, 232
Lazy Registration, 486
Malleable Content, 415
Microlink, 421
Portlet, 426
Live Form widget, 330, 383-388
Betfair, 385
code example, 385-387
Drilldown, 388
examples, 384
Explicit Submission, 384
Live Search, 388
Microlink, 388
One-Second Spotlight, 388
Progress Indicator, 388
related patterns, 388
solution, 384
Suggestion, 388
typical modifications, 384
WPLicense, 384, 385-387
Live Search, 34, 37, 340, 349, 364, 368, 382, 388
Live Search widget, 330, 368-375
Amazon Diamond Search, 372
Assistive Search demo, 374
code examples, 374
Data Grid, 375
decisions, 371
Delta Vacations, 372, 374
examples, 372
ListSomething.com, 372
Multi-Stage Download, 371
One-Second Spotlight, 375
Periodic Refresh, 372
Predictive Fetch, 375
Progress Indicator, 374
related patterns, 374
Live Search widget (continued)
results, 371
Skype, 373
solution, 369
Submission Throttling, 369, 370, 375
Suggestion widget, 375
too many results, 372
Unique URLs, 375
Virtual Workspace, 372, 375
LivePage, 119
Distributed Events, 237
log4j, 534, 536
Logging, 533-536, 557
Ajax Patterns Reader, 536
decisions, 535
fvLogger, 536
log4j, 534
log4js, 536
Lumberjack, 536
Mochikit, 536
solution, 534
tool support, 536
Traffic Sniffing, 547
logging, 212
Lumberjack, 536
M[ Top ]
Madden, Jennifer, 542
MagicAjax.NET, 588
Magnetic Poetry, 194, 392, 393
Periodic Refresh, 217
Magurski, Michael, 441
MAJAX, 579
Malleable Content, 389, 407-415
AjaxPatterns Wiki, 413-415
alternatives, 415
Business Card Creator, 413
code example, 413-415
compound edit, 415
decisions, 408-410
ending editing, 410
examples, 410-413
Flickr, 410
Highlight, 415
labels, 409
Live Form, 415
locating and editing content, 408
Microlink, 415, 421
Monket Calendar, 411
multiple open blocks, 410
One-Second Mutation, 415, 458, 460
One-Second Spotlight, 415
related patterns, 415
Rich Text Editor, 415
size, 410
solution, 408
TiddlyWiki, 411
map.search.ch, 300, 440
MapBuilder, 127
Distributed Events, 237
Mashup
Richer Plugin, 149
Masinter, Larry, 530
Meebo, 10
MemeFlow, 479
Microlink, 350, 384, 388, 389, 416-421
benefits, 417
code example, 419
context, 417
decisions, 417
Drilldown, 421
examples, 418
Gmail, 419
Live Form, 421
Malleable Content, 415, 421
One-Second Mutation, 421
One-Second Spotlight, 421
other content, 417
Popup, 406, 421
related patterns, 421
Rpad, 419
solution, 416
Tabtastic, 418
TiddlyWiki, 418, 419
visual presentation, 418
Microsoft Script Debugger, 538
Millar, Paul, 155
Miller, David, 536
MiniXML, 248
Mint, 103
mobile apps
Ajax Apps, 67
Mochikit, 536, 571
mocks, 551
monitoring loop, 380
Monket Calendar, 411
MonoRail, 588
Moo.fx, 580
mouse buttons, 140
mouse movement, 139
mouse position, 140
Mouseover DOM Inspector, 544
MoveableType comment hack, 385
MoveBy effect, 466
moveSlider function, 335
Mozilla
Tutorial: Creating a Mozilla Extension, 157
Mozilla demo, 256
MSN Earth, 529
MS-Windows
One-Second Motion, 465
multilanguage Ajax frameworks, 582-585
CPAINT, 583
JSON, 583
JSON-RPC, 583
JSRS, 583
Rialto, 584
SAJAX, 584
ZK, 584
ZK-AJAX/XUL, 584
multiple tiers, 46
Multi-Stage Download, 289, 310-316, 340, 346, 371
AjaxPatterns Portal, 314
alternatives, 316
calls, 313
code example, 314
decisions, 312
dividing page into blocks, 312
downloading content, 313
examples, 313
Guesstimate, 316
HTML Message, 190
Kayak, 313
NetVibes, 313
On-Demand JavaScript, 316
page structure, 312
Portlet, 316
Progress Indicator, 316
related patterns, 316
solution, 311
Virtual Workspace, 443
N[ Top ]
NAJAX, 599
navigator.appVersion, 286
navigator.UserAgent, 286
.NET Ajax frameworks
Ajax.NET, 586
AjaxAspects, 586
Anthem.NET, 586
Atlas, 587
Bitkraft, 587
ComfortASP.NET, 588
MagicAjax.NET, 588
MonoRail, 588
WebORB for .NET, 589
zumiPage, 589
Netflix, 404
Netflix Top 100, 198
NetVibes, 8, 89, 491
Multi-Stage Download, 313
networking capacity, 63
Neuberg, Brad, 320, 520, 530
Newman, Richard, 185
Nielsen, Jakob, 338
nodeType, 72
nonstandard technologies, 61
NumSum, 321, 352
nUnit frameworks, 555
Nyman, Robert, 76, 262
O[ Top ]
Occasional Refresh, 529
Oddpost, 353
Odeo, 154, 451
OECD privacy guidelines, 487
office applications, 9-10
onblur, onfocus, 138
onchange, 139
On-Demand JavaScript, 38, 39, 40, 86, 122-131
AjaxPattern On-Demand JavaScript Wiki, 129
Behavior Message, 125, 131
code example, 129
Cross-Browser Component, 288
Cross-Domain Proxy, 250
Cross-Domain Scripting, 125
decisions, 126
Delicious, 127
Dojo, 128
examples, 127
Fat Client, 326
HTML Message, 131, 191
JSON Message, 207
Lazy Loading, 125, 131
MapBuilder, 127
more information, 131
Multi-Stage Download, 316
Predictive Fetch, 131
related patterns, 131
Script Tag Creation, 123, 125, 126, 129
code, 130
technique, 130
Service Eval, 124, 126
solution, 123-126
upload.js, 129
uploadMessage function, 129
Web Service, 124
XMLHttpRequest Call, 106, 124
One-Second Motion, 415, 445, 462-468
Aesthetic effect, 464
alternatives, 467
Attention-grabbing, 464
Backbase Portal, 465
code example, 465-467
decisions, 463-465
destination behavior, 465
DHTML Lemmings, 465
examples, 465
Gesture, 464
Guesstimate, 468
Malleable Content, 415
motion trigger, 463
One-Second Motion (continued)
MoveBy effect, 466
MS-Windows, 465
One-Second Mutation, 461, 467
One-Second Spotlight, 454, 467
Page Rearrangement, 463
related patterns, 467
render( ), 466
Scheduling, 463
Scriptaculous, 465, 465-467
solution, 463
Sprite, 467
TiddlyWiki, 465
One-Second Mutation, 445, 455-462
alternatives, 461
animation loop, 460
Blow Up, 457
code example, 458-461
Cover Up, 457
CSS properties
backgroundImage, 456
height, 456
overflow, 456
position, 456
width, 456
decisions, 457
DHTML Lemmings, 458
Disappear, 457
Display Morphing, 456
examples, 458
Form, 456
Grow, 457
Malleable Content, 415, 458, 460
Metamorphise, 457
Microlink, 421
One-Second Motion, 461, 467
One-Second Spotlight, 454, 461
related patterns, 461
Reveal, 457
Scheduling, 456
Scriptaculous, 458
Shrink, 457
Slide In, 457
Slide Out, 456
solution, 456-457
Sprite, 461
startAnimating( ), 460
TiddlyWiki, 458, 458-461
One-Second Spotlight, 35, 342, 375, 388, 445-455
37Signals Backpack, 451
AjaxPatterns Spotlight Time, 452-454
alternatives, 454
chat.app, 451
code refactoring, 452-454
Coloir, 451
colors, 447, 450
decisions, 449
Digg Spy, 451
examples, 451-452
Fade Anything Technique (FAT) Library, 452
Fade Away, 448
Fade In, 448
Fade Out, 448
Highlight, 472
length of spotlight, 450
Malleable Content, 415
Materialize, 448
Microlink, 421
Odeo, 451
One-Second Motion, 454, 467
One-Second Mutation, 454, 461
opacity, 447
Periodic Refresh, 454
related patterns, 454
Scriptaculous, 452, 454
Shifting Flash, 448
solution, 446-449
spotlight triggers, 449
Switch, 448
Timeout, 454
Total Flash, 448
transitioning to background, 449
visibility, 447
onkeypress, onkeydown, onkeyup, 137
onload, onunload, 135
onmouseover, onmouseout, 139
onmouseup, 138
onselect, 139
opacity, 284
OpenRico, 346, 572
Data Grid example, 352, 353
library, 5
Search, 441-442
Demo, 440
Yahoo! Search Demo, 372
operating system timeouts, 505
Orchard, Dunstan, 441
P[ Top ]
page architecture patterns, 389-444
Drag-and-Drop (see Drag-and-Drop)
Malleable Content (see Malleable Content)
Microlink (see Microlink)
Popup (see Popup)
Portlet (see Portlet)
Sprite (see Sprite)
Status Area (see Status Area)
Update Control (see Update Control)
Virtual Workspace (see Virtual Workspace)
Page Rearrangement, 69, 78-83, 384, 385
AjaxPatterns Basic Wiki, 83
code example, 83
decisions, 81
Display Morphing, 78, 83
garbage collection, 81
Kiko, 82
One-Second Motion, 463
positioning style, 81
related patterns, 83
solution, 79
Super Maryo World, 82
TadaList, 81
User Action, 143
page streaming, 114, 115
PairStairs, 523
Palmsphere, 479
Pandora, 504
parentNode, 71
Parker, Andrew, 307
Pascarello, Eric, 504, 535
PasteText command, 360
pattern languages, 605
pattern-led tutorial, 21-41
patterns, 605
Ajax App (see Ajax Apps)
Ajax Stub (see Ajax Stub)
anatomy, 48-54
best-known, 606
bookmarklets, 157
Browser-Side Cache (see Browser-Side Cache)
Browser-Side Templating (see Browser-Side Templating)
Browser-Side Test (see Browser-Side Test)
Browser-Side XSLT (see Browser-Side XSLT)
Call Tracking (see Call Tracking)
Cross-Browser Component (see Cross-Browser Component)
Cross-Domain Proxy (see Cross-Domain Proxy)
Data Grid (see Data Grid)
Debugging (see Debugging)
Development (see Development patterns)
Direct Login (see Direct Login)
Display Morphing (see Display Morphing)
Distributed Events (see Distributed Events)
DOM Inspection (see DOM Inspection)
Drag-And-Drop (see Drag-And-Drop)
Drilldown (see Drilldown)
Explicit Submission (see Explicit Submission)
Fat Client (see Fat Client)
Foundational Technology (see Foundational Technology patterns)
Functionality and Usability (see Functionality and Usability patterns)
Guesstimate (see Guesstimate)
Heartbeat (see Heartbeat)
Highlight (see Highlight)
Host-Proof Hosting (see Host-Proof Hosting)
HTML Message (see HTML Message)
HTTP Streaming (see HTTP Streaming)
IFrame Call (see IFrame Call)
JSON Message (see JSON Message)
Lazy Registration (see Lazy Registration)
Live Command (see Live Command-Line widget)
Live Form (see Live Form)
Live Search (see Live Search)
Logging (see Logging)
Malleable Content (see Malleable Content )
Microlink (see Microlink)
Multi-Stage Download (see Multi-Stage Download)
On-Demand JavaScript (see On-Demand JavaScript)
One-Second Motion (see One-Second Motion)
One-Second Mutation (see One-Second Mutation)
One-Second Spotlight (see One-Second Spotlight)
overview, 47-48
Page Rearrangement (see Page Rearrangement)
Periodic Refresh (see Periodic Refresh)
Plain-Text Message (see Plain-Text Message)
Popup (see Popup)
Portlet (see Portlet)
Predictive Fetch (see Predictive Fetch)
Programming (see Programming patterns)
Progress Indicator (see Progress Indicator)
RESTful Service (see RESTful Service)
Rich Text Editor (see Rich Text Editor)
Richer Plugin (see Richer Plugin)
RPC Service (see RPC Service)
Scheduling (see Scheduling)
Server-Side Code Generation (see Server-Side Code Generation)
Service Test (see Service Test)
Simulation Service (see Simulation Service)
Single Page Application, 156
Slider (see Slider)
Sprite (see Sprite)
Status Area (see Status Area)
patterns (continued)
Submission Throttling (see Submission Throttling)
Suggestion (see Suggestion)
System Test (see System Test)
Timeout (see Timeout)
Traffic Sniffing (see Traffic Sniffing)
Unique URLs (see Unique URLs)
Update Control (see Update Control)
User Action (see User Action)
Virtual Workspace (see Virtual Workspace)
Web Service (see Web Service)
XML Data Island (see XML Data Island)
XML Message (see XML Message)
XMLHttpRequest Call (see XMLHttpRequest Call)
PEAR::HTML::Ajax, 598
Pederick, Chris, 541
PerfectXML Demo, 256
performance optimization, 289-326
Browser-Side Cache (see Browser-Side Cache)
Fat Client (Fat Client)
Guesstimate (performance optimization)
Multi-Stage Download (see Multi-Stage Download)
Predictive Fetch (see Predictive Fetch)
Performance Optimization Patterns, 251
Periodic Refresh, 19, 63, 209, 215-221, 372, 505
AjaxPatterns Periodic Time, 219
alternatives, 220
Browser-Side Cache, 220
Claude Hussenet's portal, 218
code examples, 218
code refactoring, 219
decisions, 216
Distributed Events, 234, 242
examples, 217
Fat Client, 220, 325
Guesstimate, 220, 304, 310
Heartbeat, 220, 515
HTTP Streaming, 118, 121, 220
Lace Chat, 217, 218, 504
Magnetic Poetry, 217
One-Second Spotlight, 454
Portlet, 426
refresh period, 216
Scheduling, 215
solution, 215
Status Area, 431
Submission Throttling, 220, 227
Timeout, 501, 508
Update Control, 435
Perkin, Philip, 257
Perl Ajax frameworks, 596
CGI::Ajax, 596
HTML::Prototype, 596
Personalization vs. Customization, 487
pessimistic locking, 502
PHP Ajax frameworks, 596-600
AJASON, 597
AjaxAC, 597
Cajax, 597
HTSWaf, 598
JPSPAN, 598
NAJAX, 599
PEAR::HTML::Ajax, 598
Pipeline, 598
Symfony, 599
XAJAX, 599
XOAD, 599
PHP HTTPClient, 559
PHPUnit2, 30
Pick'em Game, 341
Pipeline, 598
plain-text formats, 192
Plain-Text Message, 161, 191-195
alternatives, 195
code example, 195
examples, 193
Housing Maps, 194
HTML Message, 191
Lace Chat, 193, 195
Magnetic Poetry, 194
RPC Service, 181
solution, 192
XML Message, 192, 195, 201
XMLHttpRequest Call, 192
Plex Toolkit, 572
Plugin
Richer Plugin, 149
plugins
advantages of writing your own, 153
third-party, 152
when not installed, 153
PNG File Format, 400
podcast manager, 154
point-and-click, 382
Polling URL Sum Demo, 524, 525
pooling, 211
Popup, 39, 139, 337, 342, 389, 401-407
alternatives, 406
appearance, 403
code example, 405
decisions, 403
Drag-and-Drop, 406
examples, 404
Flickr, 404
HoverSearch, 404
JSCalc, 404, 405
Microlink, 406, 421
Netflix, 404
opacity, 402
opening and closing, 403
Portlet, 406
related patterns, 406
Slider, 406
solution, 401
Sprite, 400, 406
Status Area, 431
Submission Throttling, 227
Timeout, 508
visibility, 402
zIndex, 402
portability, 46
Portal Demo, 346
portals, 6-9
Portlet, 39, 340, 345, 350, 389, 421-427
alternatives, 426
Backbase, 424
Claude Hussenet's portal, 424, 425
code example, 425
Cross-Domain Portlet, 423
Cross-Domain Proxy, 427
decisions, 424
Distributed Events, 426
Dobrado, 424
Drag-and-Drop, 394
Drilldown, 426
Google Homepage, 424
Lazy Registration, 479
Live Form, 426
moving around, 424
Multi-Stage Download, 316
Periodic Refresh, 426
Popup, 406
related patterns, 426
solution, 422-423
tabbed browsing, 426
portlets, 7, 40
POST, 96
Predictive Fetch, 39, 289, 297-303, 352, 355, 367, 375
AjaxPatterns Predictive Fetch Sum, 301
alternatives, 302
Browser-Side Cache, 298, 302
Call Tracking, 214
code refactoring, 301
decisions, 299
examples, 300
Fat Client, 302
Firefox "Prefetch", 300
Google Maps, 300
Guesstimate, 302, 310
International Herald Tribune, 301
map.search.ch, 300
On-Demand JavaScript, 131
prefetching, 299
related patterns, 302
server priming, 302
solution, 298
user actions, 299
Virtual Workspace, 298, 443
when used, 298
XMLHttpRequest Call, 298
pre-fetching, 300
problems with, 298
Preston, Donovan, 119, 122
privacy, 44
Programming patterns, ix, 38
Progress Indicator, 34, 35, 352, 355, 360, 374, 382, 385, 388
Explicit Submission, 232
Multi-Stage Download, 316
Submission Throttling, 227
Timeout, 508
Progress Indicator widget, 329, 336-342
additional information, 342
Amazon Diamond Search, 339
Amazon Zuggest, 340
code refactoring, 341
for short delays, 337
Kayak, 341
Pick'em Game, 341
Protopage, 340
providing feedback, 338
related patterns, 342
solution, 337
TalkDigger, 340
type to use, 338
ProgressiveEnhancement
Richer Plugin, 149
Proietti, Volerio, 580
Protopage, 8, 340, 491
XML Message, 199
Prototype, 573
Prototype framework, 226
Pryce, Nat, 523
public APIs, 245
Pushlets, 120
PUT versus POST discussion, 177
PXL8 Demo, 111
Python Ajax frameworks, 600
CrackAJAX, 600
Turbo Gears, 600
Q[ Top ]
qooxdoo, 573
Quek, 397
R[ Top ]
radiobuttons, 336, 370
Rapha, 189
RC4, 496
Really Simple History, 523
Realtime on Rails, 119
references, 607
reliability, 44
Remix
Richer Plugin, 149
removeChild( ), 72
removeEvent( ), 136
render( ), 466
repetition, 146
ReplaceTextarea, 359
REST, 176
Freja, 571
REST (Representational State Transfer), 163-177
REST vs. RPC, 177
REST Wiki, 176
RESTful Service, 161-177, 559
Ajax Stub, 184
AjaxPatterns Restful Shop Demo, 173-175
alternatives, 171
arbitrary interactions, 171
Atom, 172
Backpack, 169
Blogger, 172
cart contents
changing, 174
reading, 174
categories list, 173
code example, 173-175
data formats, 171
Distributed Events, 242
documenting services, 170
examples, 172
GET for quesries, 168
HTTP methods, 167
hyperlinks, 170
idempotent, 170
individual category, 173
more information, 176
portability, 171
PUT and DELETE, 175
related patterns, 176
resources and operations, 165
RPC Service, 176, 179, 181
solution, 163-172
stateless servicess, 168
Timeout, 500
Unique URLs, 176
URLs, 167
URLs or URIs, 166
weighing, 171
XML Data Island, 176
XML Message, 176
retrieveQuestions function, 387
Rialto, 584
Rich Text Editor, 359
Malleable Content, 415
Rich Text Editor widget, 329, 355-361
Dojo Rich Text Editor, 357
examples, 357-359
FCKEditor, 357, 359-360
Jotspot, 357
related patterns, 360
Rich Text Editor, 359
solution, 356
typical features, 356
Wikipedia, 358
Writely, 358
richer form, 143
Richer Plugin, 61, 122, 149, 150-152, 154, 155, 157
Host-Proof Hosting, 498
XMLHttpRequest Call, 106
Romney, Christian, 355
Rosenberg, Doron, 288
Roth, Kevin, 359
Route Planning, 204
Rpad, 419
RPC Service, 161, 177-181
Ajax Stub, 181, 186
AjaxPatterns RPC Shop Demo, 180
alternatives, 181
cart contents
changing, 181
reading, 181
code example, 180
examples, 179
Facade, 180
Flickr, 180
individual category, 181
Kiko, 179
Plain-Text Message, 181
reading categories list, 181
related patterns, 181
RESTful Service, 176, 179, 181
solution, 178
XML Message, 181
RPC, concrete forms of, 178
RSA, 496
RSLite, 579
RSLite library, 107
Ruby Net::HTTP, 559
Ruby On Rails, 278, 600
runSearch( ), 366
Russell, Alex, 78, 122, 499
Ruston, Jeremy, 155, 458, 462
S[ Top ]
Sack, 580
Sack library, 387
SAJAX, 184, 584
sandbox DOM node, 23
Sarissa, 263, 582
Scarfe, Tim, 78
Scheduling, 37, 133, 135, 143-148
AjaxPatterns Basic Wiki Demo, 148
alternatives, 148
Backpack, 147
canceling the timer, 144
Claude Hussenet's Portal, 146
clearTimeout, 146
code example, 148
examples, 146
Google Suggest, 146
HTTP Meta Refresh, 148
iTunes Counter, 146
One-Second Motion, 463
One-Second Mutation, 456
Periodic Refresh, 215
repetition, 146
setInterval, 146
solution, 144-146
Scheffler, Martin, 119
Schwartz, Michael, 586
Schwartz, Richard, 214, 496, 499
Scoop, 111
Scott, Bill, 444
Script Tag Creation, 123, 125, 126
code, 130
technique, 130
Scriptaculous, 391, 555, 573
One-Second Motion, 465, 465-467
One-Second Mutation, 458
One-Second Spotlight, 452, 454
search portlet, 40
seed, 490, 492
selection input, 367
selectors, 336, 370
Selenium, 563
sequencing, 212
Serpent, 496
server calls, 15-17
server priming, 302
server push, 19
server-side cache, 297
Server-Side Code Generation, 275-283
AjaxTags, 280
alternatives, 282
Backbase, 279
benefits, 277
code example, 280-282
GamePane class, 281
Comfort.ASP, 280
Cross-Browser Component, 288
Echo2, 278
Echo2 Number Guess, 280-282
GamePane class, 281
examples, 278-280
HTML Message, 283
related patterns, 283
Ruby On Rails, 278
solution, 277-278
usability, 277
server-side scripting, 14
Service Eval, 124, 126
service streaming, 116, 117
Service Test, 40, 553, 557, 558-560
Ajax Patterns Reader, 559
Browser-Side Test, 560
code example, 559
Jakarta HTTPClient, 559
PHP HTTPClient, 559
RESTful Service, 559
Ruby Net::HTTP, 559
Simulation Service, 560
solution, 558
tool support, 559
Web Service, 91
Session Warning Demo, 504
setInterval, 146
Shanahan, Francis, 190, 340
shiftKey, 140
Shoemaker, Craig, 5
shortcut keys, 138
Simian Design, 385
Simulation Service, 549-553, 560, 564
Ajax Patterns Reader, 552
Categorization of Test Doubles, 553
code example, 552
decisions, 552
Lean IT Processes, 553
more information, 553
related patterns, 553
Service Test, 553
solution, 550
Web Service, 91
Singh, Darshan, 256
Single Page Application pattern, 156
Skype, 373
Slide, 434
Slider, 370
Drag-and-Drop, 394
Popup, 406
Virtual Workspace, 443
Slider widget, 329, 330-336
alternatives, 336
Amazon Diamond Search, 333
drag function, 335
examples, 333
Google Maps, 334
handle, 335
Katrina-Boston overlay map, 334
moveSlider function, 335
orientation, 332
related patterns, 336
scale, 332
solution, 331
typical control mechanisms, 331
WebFX Slider Demo, 335
Yahoo! Mindset, 333
code example, 335-336
smartBox, 366
SmartClient, 574
SOAP, 178, 186
software design principles, 45
spell checker, 76
Sprite, 389, 394-400
alternatives, 400
animation, 396
code example, 397-400
decisions, 396
DHTML Lemmings, 396, 397-400
Drag-and-Drop, 393, 400
examples, 396
file formats, 396
Google Maps, 397
more information, 400
One-Second Motion, 467
One-Second Mutation, 461
Popup, 400, 406
Quek, 397
related patterns, 400
solution, 395
tiling, 400
srcElement (IE), 139
standard technologies, 61
standards, 17
startAnimating( ), 460
Status Area, 139, 342, 361, 382, 389, 427-431
AjaxPatterns Status Wiki, 429-431
alternatives, 431
Betfair, 429
Browser Status Bar, 431
code refactoring, 429-431
decisions, 428
examples, 429
Highlight, 471
Lace Chat, 429, 504
Periodic Refresh, 431
Popup, 431
related patterns, 431
size and overflow, 428
solution, 428
structuring content, 429
Timeout, 508
Stenhouse, Mike, 517, 530
Stimmerman, Brett, 102, 193, 429, 504
Strategy pattern, 466
Stream, 122, 581
streaming, 19
Struts-Layout, 593
stubs, 551
Submission Throttling, 37, 39, 209, 221-227, 367, 369, 370, 375, 382
AjaxPatterns Assistive Search, 226
Amazon Zuggest, 225
Browser-Side Cache, 297
buffers per browser application, 224
code example, 226
decisions, 223-225
Explicit Submission, 232
Fat Client, 325
Gmail, 225
Google Suggest, 225, 226
Heartbeat, 515
incoming commands to server, 223
Periodic Refresh, 220, 227
Popup, 227
Progress Indicator, 227
Prototype framework, 226
requestValidCategoriesLoop, 226
solution, 222
throttle period, 225
triggering buffer uploads, 223
submitWord( ), 32, 35
Subsys_JsHttpRequest, 580
Suggestion, 39, 383, 388
Suggestion widget, 330, 361-368
alternatives, 367
Amazon, 365
auxiliary information, 364
Browser-Side Cache, 367
code example, 365
decisions, 363-364
Delicious, 365
examples, 364
Google Suggest, 362, 364
Guesstimate, 367
Highlight, 367
Kayak, 364
Lazy Registration, 368
Live Search, 368
Live Search widget, 375
mechanics of, 362
more information, 368
number of suggestions, 364
order of suggestions, 364
Predictive Fetch, 367
related patterns, 367
rules of thumb, 363
selection input, 367
solution, 362
Submission Throttling, 367
Super Maryo World, 82
SVG, 19
SWATO (Shift Web Application TO...), 593
Symfony, 599
System Test, 40, 549, 560-564
Ajax Patterns Reader, 563
Browser Controller, 561
Browser Simulation, 561
Browser-Side Test, 561, 564
code example, 563
Dojo Toolkit, 563
Embedded Browser Scripts, 561, 564
GhostTrain, 562
HttpUnit, 563
more information, 564
related patterns, 564
Selenium, 563
Simulation Service, 564
solution, 561
tool support, 562
Watir, 562
T[ Top ]
tabbed browsing, 426
Tabor, Tim, 544
Tabtastic, 418
Tacos Tapestry Components, 594
TadaList, 81
tagName, 72
tags, 49
TalkDigger, 340
HTML Message, 190
Multi-Stage Download
TalkDigger, 313
target (Firefox), 139
TCP connection, 122
TEA (Tiny Encryption Algorithm), 496
Teacher!, 470
Technorati, 89
public APIs, 245
TechRepublic demo, 257
terminal emulators, 10
Test-Driven Design (TDD), 551
testing, 549-564
A Summary of Functional Testing Frameworks, 564
Browser-Side Test (see Browser-Side Test)
Service Test (see Service Test)
Simulation Service (see Simulation Service)
thin client, 324
ThinkCAP JX, 594
third-party plugins, 152
throughput requirements, 63
ThyAPI, 575
TIBCO General Interface, 575
TiddlyWiki, 155, 411, 418, 419
One-Second Motion, 465
One-Second Mutation, 458, 458-461
tiling, 400
Time Periodic Refresh demo, 452
Time Spotlight Demo, 452
Timeout, 473, 499-508
applications of server-side session tracking, 502
code refactoring, 505-508
monitoring mouse movements, 507
unconditional timeout, 505
warning message, 506
decisions, 503
Direct Login, 493, 508
examples, 504
Heartbeat, 508, 515
historical records, 502
Host-Proof Hosting, 498
inactive users, 501
invalidating server-side session, 502
Lace Chat, 504
Lazy Registration, 486
length of timeout, 503
multi-user awareness, 502
One-Second Spotlight, 454
operating system timeouts, 505
Pandora, 504
Periodic Refresh, 501, 508
pessimistic locking, 502
Popup, 508
Progress Indicator, 508
related patterns, 508
RESTful Service, 500
Session Warning Demo, 504
solution, 500-503
Status Area, 508
sudden timeouts, 501
user-interface, 503
work scheduling, 503
timeouts, detecting, 212
Tognazzini, Bruce, 338
tracking support, 339
Traffic Sniffing, 533, 544-547
code example, 547
Fiddler, 546
flangelib.js library, 547
Logging, 547
related patterns, 547
solution, 545
Traffic Sniffing (continued)
tool support, 545
XMLHttpRequest Tracing script, 547
Tranquilli, Michele, 111
transparency, 284
Tree widget, 350
Treehouse Magazine, 491
Try Ruby, 10
Turbo Gears, 600
Turnbull, Angus, 112, 287
Tutorial, 131
tutorial, 21-41
Ajaxagram, 29-33
ajaxagram.js, 29, 31
anagram.php, 29
anagram.phtml, 29
anagrams.phtml, 30
application logic, 31
CSS, 35
index.html, 29, 31
presentation, 31
submitWord( ), 32, 35
updateAnagramsDisplay( ), 33
web service, 29
ajaxCaller, 37
ajaxifying web app, 27-40
refactoring exercises, 38-40
convenience function, 23
Development patterns, 40
display morphing, 22
dynamically creating link, 23
enhancing functionality and usability, 33-36
foundational technology patterns, 38
Functionality and Usability patterns, 39
href property, 24
innerHTML, 24
Live Search, 34, 37
One-Second Spotlight, 35
preparing demos, 22
Programming patterns, 38
Progress Indicator, 34
refactoring for performance, 37
refactoring to external library, 37
sandbox DOM node, 23
Submission Throttling, 37
suggested projects, 40-41
Am I Ajax Or Not, 40
bookmarklet, 41
drag-and-drop cart, 40
filesystem navigation, 40
image slideshow, 40
search portlet, 40
two-person chat, 40
Whack-A-Mole game, 40
web remoting, 24-26
$( ) convenience function, 25
handling events in JavaScript, 26
XMLHttpRequest usage, 25
tutorial.js, 24
Twofish, 496
type, 140
U[ Top ]
Unique URL Sum Demo, 524, 525
Unique URLs, 39, 375, 474, 515-530
"Here' link, 529
AjaxPatterns Unique URL Sum, 524-529
IFrame source, 528
IFrame Sum Demo, 526, 527
Polling URL Sum Demo, 525
synchronization logic, 528
Unique URL Sum Demo, 525
alternatives, 529
appearance, 523
code refactoring, 524-529
Full IFrame Sum Demo, 527
IFrame source, 528
IFrame Sum Demo, 526
Polling URL Sum Demo, 525
synchronization logic, 528
Unique URL Sum Demo, 525
decisions, 521
Dojo Toolkit, 523
examples, 523
fragment identifiers, 517
IE history, 519
IFrame-URL technique, 520
more information, 530
Occasional Refresh, 529
PairStairs, 523
polling, 518
interval, 522
Really Simple History, 523
RESTful Service, 176
search engine indexing support, 521
solution, 516-521
state changes, 522
Virtual Workspace, 443
Update Control, 389, 431-436
code example, 434
Digg Spy, 433, 434
examples, 433
HTTP Streaming, 435
Periodic Refresh, 435
related patterns, 435
Slide, 434
solution, 432
WBIR, 434
updateAnagramsDisplay( ), 33
upload.js, 129
URLs or URIs, 166
usability, 33-36, 43, 44
patterns, 39
User Action, 133-143
alternatives, 142
altKey, 140
Backpack, 141
Basic AjaxPatterns Demos, 142
button, 140
clientX, clientY, 140
code example, 142
ctrlKey, 140
decisions, 137-141
Display Morphing, 143
event handlers, 141
event handling, 135
event object attributes, 139
event type, 140
examples, 141
Google Maps, 141
Google Reader, 141
key modifiers, 140
key pressing, 137
keyboard focus, 138
keyCode (IE), 140
mouse buttons, 140
mouse movement, 139
mouse position, 140
onblur, onfocus, 138
onchange, 139
onkeypress, onkeydown, onkeyup, 137
onmouseover, onmouseout, 139
onmouseup, 138
onselect, 139
Page Rearrangement, 143
related patterns, 143
shiftKey, 140
shortcut keys, 138
solution, 134-137
srcElement (IE), 139
target (Firefox), 139
type, 140
which (Firefox), 140
XMLHttpRequest Call, 143
V[ Top ]
Van Everdigen, Michiel, 496
Vandenberg, Adam, 547
Vector Markup Language (VML), 19
Venkman, 538
View Rendered Source, 542
Virtual Fish-Eye Lens, 443
Virtual Magnifying Glass, 443
Virtual Workspace, 39, 354, 360, 372, 375, 390, 436-444
alternatives, 443
Browser-Side Cache, 439, 443
code refactoring, 441-442
decisions, 439
Drag-and-Drop, 443
Dunstan Orchard's blog, 441
examples, 440
Giant-Ass Image Viewer (GSV) Library, 441
Guesstimate, 443
initial view, 439
map.search.ch, 440
more information, 444
Multi-Stage Download, 443
navigable workspaces, 437
OpenRico Search, 441-442
Demo, 440
panning, 439
Predictive Fetch, 298, 443
related patterns, 443
repoulating regions, 439
Slider, 443
solution, 437-438
Unique URLs, 443
view changes, 439
Virtual Fish-Eye Lens, 443
Virtual Magnifying Glass, 443
visual effects, 445-472
Highlight (see Highlight)
One-Second Motion (see One-Second Motion)
One-Second Mutation (see One-Second Mutation)
One-Second Spotlight (see One-Second Spotlight)
W[ Top ]
Watchlist Wiki Demo, 240
Watir, 562
WBIR, 434
wealth clock, 247
web apps, 12
Ajax advantages over, 64
ajaxifying, 27-40
Web Developer extension, 541
Web Remoting, 15, 24-26, 61, 85-131
$( ) convenience function, 25
handling events in JavaScript, 26
HTTP Streaming (see HTTP Streaming)
IFrame Call (see IFrame Call)
On-Demand JavaScript
Web Service (see Web Service)
XMLHttpRequest Call (see XMLHttpRequest Call)
XMLHttpRequest usage, 25
Web Service, 85-91
AjaxPatterns TestAjaxCaller, 90
code example, 90
Cross-Domain Proxy, 91
decisions, 88
examples, 89
Fat Client, 320
HTTP Streaming, 120
Netvibes, 89
On-Demand JavaScript, 124
related patterns, 91
Service Test, 91
Simulation Service, 91
solution, 86-88
Technorati, 89
third-party usage, preventing, 88
Wish-O-Matic, 90
XMLHttpRequest Call, 98
web services, 161-207
Ajax Stub (see Ajax Stub)
HTML Message (see HTML Message)
RESTful Service (see RESTful Service)
RPC Service (see RPC Service)
XML Message (see XML Message)
WebFX Slider Demo, 335
WebORB, 595
WebORB for .NET, 589
Were, Chris, 487
Whack-A-Mole game, 40
which (Firefox), 140
Whitespace
Highlight, 470
widgets, 13, 329-388
WidgetServer, 595
Wikipedia, 358
Willison, Simon, 559
Wish-O-Matic, 90
WPLicense, 248-250, 384, 385-387
handling user answers, 250
retrieving license questions, 249
retrieving license types, 249
Wordpress plugin, 246
Writely, 358
Wt, 585
X[ Top ]
XAJAX, 599
XForms, 19
XHConn, 580
XHTML, 14
XML, 15
advantages over JSON, 206
JSON advantages over, 206
XML Data Island, 253-259
AjaxPatterns Data Island Sum, 257-258
alternatives, 259
Browser-Side Cache, 256, 259
Browser-Side Templating, 259
Browser-Side XSLT, 256, 259, 265
code refactoring, 257-258
Distributed Events, 242
examples, 256
including XML document on initial page load, 256
Mozilla demo, 256
PerfectXML Demo, 256
RESTful Service, 176
retaining XML for later use, 256
solution, 254-256
TechRepublic demo, 257
XML Message, 256
XML Message, 161, 195-201, 352
AJAX and, 197
AjaxPatterns XML Sum, 200
alternatives, 201
Browser-Side Templating, 198, 273
Browser-Side XSLT, 265
code refactoring, 200
decisions, 198
DTD or Schema, 198
examples, 198
Google Maps, 200
HTML Message, 191
JSON Message, 201, 205
Netflix Top 100, 198
parsing XML, 197
Plain-Text Message, 192, 195, 201
Protopage, 199
responseXML, 197
RESTful Service, 176
RPC Service, 181
server generating XML, 198
solution, 196-198
transforming XML, 198
XML Data Island, 256
XSLT, 198
XMLHttpRequest, 62, 124
browser compatibility issues, 284
Direct Login, 489
global, 214
responseText component, 339
responseText property, 117
Tracing script, 547
tracking, 210
Unique URLs, 516
usage, 25
XMLHttpRequest Call, 85, 86, 91-107, 337
204 response, 107
abort( ), 100
Ajax Stub, 185
AjaxPatterns TestAjaxCaller, 103-105
alternatives, 105-107
Anyterm, 103
API summary, 99
asynchronous calls, 94
Backbase, 103
Browser-Side Cache, 290, 293
caching, 101
callback, 135
code example, 103-105
constraints on external domain, 97
content, 101
creating objects, 93
CSS stylesheet call, 107
Data Grid widget, 354
decisions, 101-102
Demo RSS Reader, 103
Drilldown widget, 345
error detection, 95
error handling, 102
examples, 102-103
GET and POST, 96
getAllResponseHeaders( ), 100
getResponseHeader( ), 100
HTTP Streaming, 106, 115
IFrame Call, 105, 110, 112
images, 251
import XML documents, 107
Lace Chat, 102
Lazy Registration, 477, 478
Live Form widget, 384
Live Search widget, 370
methods, 100
Mint, 103
On-Demand JavaScript, 106, 124
onreadystatechange, 100
open( ), 100
page refreshes, 105
Plain-Text Message, 192
Predictive Fetch, 298
Progress Indicator widget, 338
properties, 100
readyState, 100
responseText, 100
responseXML, 100
Richer Plugin, 106
RSLite library, 107
send( ), 100
setRequestHeader( ), 100
Slider widget, 333
solution, 92-100
status, 100
statusText, 100
Timeout, 501
Traffic Sniffing, 545
User Action, 143
Web Service, 98
XML responses, 98
XMLHttpRequest Calls, 157
XMLHttpRequest Tutorial, 204
XML-RPC, 178, 186
XOAD, 599
XSLT, 198
quick overview, 260
xUnit, 555
Y[ Top ]
Yahoo Maps public APIs, 245
Yahoo! Mindset, 333
Yahoo! Mindset Slider code example, 335-336
YAML, 206
Yellow Fade Technique, 35, 447, 455
YubNub, 379
Z[ Top ]
Zijde, Tino, 400
Zijdel, Tino, 396
Zimbra AjaxTK, 576
ZK, 584
ZK-AJAX/XUL web framework, 584
Zorn, Walter, 582
zumiPage, 589
Zurück zu Ajax Design Patterns