Ajax Design Patterns

First Edition Juli 2006
ISBN 978-0-596-10180-0
Seiten 655
EUR43.00, SFR71.90


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


Themen

Buchreihen

Special Interest

International Sites

O'Reilly China O'Reilly France O'Reilly USA O'Reilly Japan O'Reilly Taiwan