Cover | Table of Contents | Forum | Colophon
[ 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 ]
$ (dollar sign)
$$( ) function, 98
$( ) function, 98
$F( ) function, 98, 496
/// (triple slash) documentation comments in C#, 27
== (equal) operator, 538
=== (strict equality) operator, 538
@ (at symbol)
@import rule, 388
documentation comments, 27
[ ] (square brackets) in array literals, 824
{ } (curly braces) in object literals, 825
| (pipe character), separating lists, 226
Numbers[ Top ]
3D, perceiving, 183
411Sync, 656
A[ Top ]
<a> elements
id attribute (XHTML 1.0), 321
new window without a target, 694
using in buttons, 181-184
absolute font sizes, 386
abstract games, 724
accessibility, 167-171
creating alternative application version, 170
forms, 485-488, 520
importance of, 169
issues with Ajax applications, 169, 922
U. S. government web applications, 33
W3C-WAI (Web Accesibility Initiative), 168
accordion navigation, 236-239
chunks-of-data structuring, 236
example of, 238
hiding content sections after page loading, 237
Prototype-style accordion object, 238
setting up accordion for use with Ajax, 239
Action Pack (Ruby on Rails), 59
ActionController library, 59
ActionScript, 733
ActionView.ActionController library, 59
Active Server Pages (ASP), 39
ActiveRecord library (Ruby on Rails), 59
addEventListener( ) method, 131
Adobe
Flash, 733
Shockwave, 734
advanced searching, 576
Adventure game, 726
adventure games, 726-727
aggregators, feed, 614
Ajax, 4
changes in web page interaction, 8
evolution of the name, 8
risks associated with use, reference, 916-924
support by browser engines, 18
Web 2.0 applications, 20
what it's not good for, 34
Ajax web applications (see RIAs)
Ajax.NET, 97
Ajax.PeriodicalUpdater() object, 690, 868
Ajax.PeriodicUpdater object, 101
Ajax.Request object, 99
Ajax.Request( ) method, callbacks, 416
Ajax.Responders object, 867
Ajax.Updater object, 101, 867
options, 101
ajaxload.info web site, 436
Akismet (blogging API), 620, 892
alert boxes, 335
integrating the window into web applications, 335-347
keeping focus and closing the pop up, 339-343
moving the window, 344-347
window style, 336-339
variations caused by operating systems and browsers, 335
alpha channel, 438
alpha transparency, 438
support by PNG format, 440
alternate stylesheets, 364, 371
font size, 389
"Alternative Style: Working with Alternate Style Sheets", 372
Amazon Standard Item Number (ASIN), 598
Amazon Web Services (see AWS)
Amazon.com
Book page, 154
breadcrumbs on, 221
organizing tools, 155
web services, 652
XML Scratch Pad, 609
Amnesty International, 656, 892
Amp's main page, 144
animation, 434-481
Ajax, 453-481
dragging and dropping, 454-464
drawing libraries, 472-481
dynamically animating position of an object, 464-467
effects on objects, 467-472
object manipulations, 467-472
using frameworks, 453
building with PNG format, 439-453
CSS, 441
differences from GIFs, 440
JavaScript looping, 442-444
more robust animation object, 444-448
using Ajax, 448-453
character animation for games, 735-753
moving the character, 742-753
walking loop, 735-742
GIF format
history of, 435
how it works, 435-437
on the Web, 434
animation object (example), 442-444
adding Ajax, 448-453
starting, pausing, and stopping programmatically, 444-448
AOL Instant Messenger, 893
Apache Software Foundation (ASF), Jakarta Struts, 60
Apache web server, 36
features, 37
mod_headers module, 812
module to handle compression, 814
typical HTTP header sent from, 811
APIs, web service, 618, 619-658
Ajax and, 657
blogging services, 620-623
bookmark services, 623-626
financial services, 626
mapping services, 627-631
news and weather services, 636-641
NewsIsFree, 637-641
other services, 656
photo services, 641-649
Flickr, 642-649
reference, 892-915
reference services, 650
search services, 651
shopping services, 652-655
eBay, 653-655
appearance of an application (see visualization)
appendChild( ) method, 108, 259, 260
Apple
Mac OS X alert windows, 335
Safari web browser, 18
<applet> elements, id attribute (XHTML 1.0), 321
applets, 734
arcade games, 731
ArcWeb, 627, 893
array literals, 824
arrays, using to store changing information, 399
ASCII, 852
online list of character codes, 223
ASIN (Amazon Standard Item Number), 598
ASP (Active Server Pages), 39, 40
ASP.NET, 40
assemblies (.NET), 59
asynchronous, 864
Atom, 16, 614
support by browser engines, 18
attributes
creating for DOM elements, 106
creating for DOM nodes, 107
<frame> elements, style attributes, 317
<frameset> element, 317
XHTML versus HTML form elements, 484
XML, 845
Audioscrobbler, 632
AWS (Amazon Web Services)
gathering AWS response and formatting for client, 610
methods available with, 608
REST request, 609
SOAP request using, 598
SOAP request using PHP, 607
WSDL document (example), 601-604
B[ Top ]
back and forward buttons (browsers), problems with Ajax, 245, 918
background check records, 667
backward compatibility, web developers and, 19
balance (application layout), 159
bar graph based on user-submitted data, 476-481
completed page with bar graph, 481
JavaScript handling response, request, and drawing, 478-480
page to request data for the graph, 476
server-side script handling dynamic bar graph request, 477
base64_encode( ) function, 312
BaseError object, 409
BBC, 637, 893
before pseudoclass (CSS), 297
behavior property, 314
Berlind, David, 661
Bible lookup service, 656
Big O notations (sorting algorithms), 268
binary transparency, 439
bindings element (WSDL), 601
Blinksale (invoice service), 626, 894
bloat, avoiding in web application design, 143
blogging services, 620-623
list of some popular blogging APIs, 620
using FeedBurner MgmtAPI in an application, 621-623
Blogmarks (bookmarking service), 624, 894
blogs, 155
body component of a web page, 792
breaking into smaller pieces, 793-795
book information database (ISBNdb), 650
bookmark services, 623-626
del.icio.us API, 624-626
listing of some popular APIs, 623
bookmarks, 244
problems with Ajax, 917
breadcrumbs, 221-226
creating with XHTML lists and CSS, 222
CSS styling rules, 222
dynamically creating, 225
importNode( ) function for Internet Explorer, 224
supplied by server response, 223
Bresenham line algorithm, 748, 750
Bresenham, Jack E., 750
broken links, testing in web applications, 26
browsers, 17-19
alert windows, 335
alpha transparency support, 439
application navigation and, 151
back and forward buttons, problems with Ajax, 245
bookmarks, problems with Ajax, 244
code for browser detection, 198-199
compressed content, 814
CSS specifications, 13
customizations, 363-367
character encoding, 366
font sizes, 366
stylesheets, 364-366
enhancing to become true applications, xiii
font sizes, relative, 386
functioning of file menu example, 209
Gecko layout engine, 18
KHTML/WebCore layout engines, 18
other layout engines, 19
browsers (continued)
page loading status, 240
plug-ins, 733
Flash, 733
Java applets, 734
Shockwave, 734
pop-up windows and, 362
Presto layout engine, 19
right mouse button clicks, 764
standards compliance and backward compatibility, 20
standards supported by browser engines, 17
tables
populating, innerHTML or DOM methods, 259
problems with, 248
testing performance in web application development, 26
Trident layout engine, 18
web standards and, 10
XMLHttpRequest object implementations, 69
XPath implementations, 83
XSLT and XPath support, 17
bubble sorts, 268
business logic layer (BLL), 804
business records, 667
businesses
advantages of Ajax applications, 672-674
ease of installation, 674
reducing costs, 673
communication through combined applications, 720
communication through file sharing, 691-703
file notification, 696-698
receiving the file, 698-703
sending a file, 692-696
communication through whiteboards, 703-719
building the board, 703-707
enhancing with pen color choices, 715-718
enhancing with stamps and shapes, 719
replicating rendering on all users' screens, 707-714
real-time communication, 674-691
chat client, 678-686
chat server, 686-690
client/server communication, 675
connecting to chat, 675-678
button_onclick function (example), 465
buttons
image built into a CSS button, 184
navigation bar, 180-184
representing 3D, 183
buySAFE, 894
BVS Performance Center for Banks, 145
C[ Top ]
C# .NET, adding compression to a site, 832
C# documentation comments, 26
Cache-Control header (HTTP), 813
Cairo graphics engine (Gecko), 19
CakePHP framework, 62
callbacks
Ajax response, 864
Ajax.Request( ) method, 416
supporting Ajax calls to the server for animations, 481
capital letters, use in application text, 166
Cascading Style Sheets (see CSS)
Casciano, Chris, 332
Castlevania (arcade game), 731
catch clause, 414
Cavedog's Total Annihilation game, 724
cells collection, 136
CGI (Common Gateway Interface), 37
FastCGI, 37
Channel Definition Format (CDF), 15
character class (example)
changes in direction, 770
collision bounding constraints, 754
collision detection and other functionality, 756-759
modified animation object as basis, 735-740
modified for different characters and animation sequences, 740-742
mouse click event handling, 749-753
movement functionality added, 743-747
starts and stops movement, event handling, 770
character encodings, 851
choosing in browsers, 366
character references, 851
character.js file, 778-783
chat application (example), 672-691
chat client, 678-686
adding events to input controls, 680
event-handling functions, SendMessage( ) and QuitChat( ), 681
JavaScript code to run Ajax chat client, 683-686
monitoring message queue on server and displaying new messages, 682
PHP that creates structure, 679
tracking current users, 683
chat server, 686-690
get_messages.php file, 688
get_users.php file, 690
logout.php file, 686
put_message.php file, 687
quote_smart( ) function to prevent SQL injection, 687
client/server communication, 675
connecting to chat, 675-678
working Ajax chat application, 690
chat services, 155
checkboxes (form controls), 493
custom, 499
properties, 499
setting error indicator to, 553
using id attributes to get values, 494
Chevron, Jemima, 718
chunks-of-data structuring, 236
circular collision detection, 759-762
Pythagorean theorem, 759
testing a point and a circle, 761
testing for a circle and a rectangle, 761
testing two circles for collision, 761
class attribute, using for quick customizations, 398
classes
FCL (Framework Class Library), 58
specification in web application development, 25
client frameworks, 94-97
Dojo Toolkit, 94
DWR, 96
jQuery, 96
other, 97
Prototype, 95
objects used with Ajax, 99-102
Sarissa, 97
client request for a web service, 606
client side of Ajax applications
modular coding, 791-803
CSS, 795-802
JavaScript, 802
XHTML, 791-795
optimizations, 818-830
JavaScript, 822-830
XHTML and CSS, 819-822
client/server architecture, 28
communication between client and server, 838
communication model for chat program, 675
data validation duties, 536
RPC for distributed computing, 595
web sites in the year 2000, 6
client-side errors, 409
notifying the user, 419
closePopUp( ) function, 340
CLR (Common Language Runtime), 40
CMSs (Content Management Systems), Zope and, 62
CNET, 653, 895
code examples in this book, xviii
code optimization, 839
coincident lines, 764
collisions, 753-764
circular collision detection, 759-762
detection techniques, 753
handling, 772
linear collision detection, 762-764
rectangular collision detection, 754-759
color
color themes switcher, creating, 392-397
contrasts between text and its background, 166
GIF image format, 256-color-palette limit, 437
palette-based GIF images, 436
true-color images in GIF file format, 438
color wheel, 718
colors.css file, 369
example of contents, 370
Colossal Cave Adventure, 726
comb sorts, 268
comma-separated value (CSV) files, 47
comments
documenting code, 27
removing from CSS and XHTML files, 819
removing from JavaScript files, 822
XML, 849
commercial Ajax web applications, 32
Common Gateway Interface (see CGI)
Common Intermediate Language (CIL), 58
Common Language Infrastructure (CLI), 59
Common Language Specification (CLS), 58
Common Type System (CTS), 58
communication functionality, 155
communication needs for business
combining applications, 720
file sharing, 691-703
file notification, 696-698
receiving the file, 698-703
sending a file, 692-696
real-time communication, 674-691
chat client, 678-686
chat server, 686-690
client/server communication, 675
connecting to chat, 675-678
whiteboards, 703-719
building the board, 703-707
enhancing with pen color choices, 715-718
enhancing with stamps and shapes, 719
replicating rendering on all users' screens, 707-714
compiled languages, 37
compression, 830-833
adding to a site using C# .NET, 832
adding to a site using PHP, 831
HTTP, 813-815
CompuServe, GIF format, 435
conditional catch clause, 414
confirmation window, 349-351
consistency
importance in application layout, 161
importance in web application design, 150
content changes, Ajax and, 923
Control.Slider object, 389-392
controller (MVC model), 30
controls and widgets, design of, 316
cookies, 375-381
incorporating into style switcher object, 378-381
simple cookie object (example), 376-378
storing user customization information, 407
cost savings from using web applications, 673
Craigslist, 660
CREATE TABLE statement (SQL), 49
createDocumentFragment( ) method, 107
createElement( ) method, 106, 260
createTextNode( ) method, 107, 259, 260
createXMLHttpRequest( ) function, 71
credit cards, validating, 541-543
credit checks, 626
"Cross-Browser Scripting with importNode( )", 329
cross-browser compatibility, testing for web applications, 26
Crowther, William, 726
Crysis (FPS game), 723
CSS (Cascading Style Sheets), 5, 117-129
CSS1 specification, 13
CSS2 specification, 13
properties and JavaScript equivalents, 119-124
CSS2.1 specification, 13
CSS3 specification, 13
Dojo Toolkit drag-and-drop functionality, 457
drop-down menu solution, 188-191
font size switching, 387-389
forms, 498
image rollovers
in browsers without scripting, 186
in tabs, 216
layout using, 250-252
modifying and removing style, 118
stylesheet manipulation methods, 118
modularity of CSS files, 795-802
media types, 800
style properties, 796-800
notification of errors in form data, 552-555
error rules, 553-554
rule switching with JavaScript, 555
numbering system for document and table of contents, 296
optimizations, 819-822
removing comments from files, 819
removing unnecessary whitespace, 819
shortening class and id names, 821
using shorthand notation, 822
pen color changes in whiteboard application, 716
PNG image to be used in animation, 441
Results objects, Google's AJAX Search API, 592
rule types, 117
sample tabs using XHTML lists, 213-215
simple navigation bars styled with, 176-180
slide show application, Internet Explorer version, 314
slide show styling, 305-307
sortable list styling, 300
standards supported by browser engines, 18
style information, 126
style switching, structure for CSS files, 368-371
styles for a Windows-like file menu, 195-198
styling <div> element to replace <iframe>, 324
styling alert windows, 338
styling breadcrumbs, 222
Internet Explorer and, 223
styling links at bottom of a page, 226
support by ASP.NET, 40
tab content sections, hiding from view, 218
table styling, keeping with sorts, 280-283
Zen Garden site, 160, 332
separating structure from presentation, 333-334
CSS2Properties object, 119
cssRules collection, 128
CTS (Common Type System), 58
CURL package, 655
Custom Search Engine, 587
CustomError object (example), 423-426
modified to garner user feedback, 428-432
D[ Top ]
Daily CSS Fun web site, 332
Dalton Mailing Service, Inc., 146
data access layer (DAL), 804
data access module (model in MVC), 30
data exchange formats, choosing between XML and JSON, 92-94
data sources (for mashups), 665-668
open source services, 668
public data, 665-667
background check records, 667
business records, 667
people searches, 667
public records, 666
selecting, 670
data validation, 534-562
Ajax client/server validation, 558-562
advantages of, 562
checking form fields on the fly, 558-561
CSS notification of errors, 552-555
CSS error rules, 553-554
rule switching with JavaScript, 555
feeds, 616
importance of, 534
server-side, 555-558
checking whether expected data was received, 556
protecting the database, 557
returning problems to the client, 557
value checks, 557
using JavaScript, 536-552
checking phone numbers, 539
Dojo Toolkit, 549-552
regular expressions, 538
validation object, 543-549
value checking, 537
data, Ajax optimization, 839
databases, 44-48
basic three-tier application design pattern, 29
errors, 412
IBM DB2, 45
indexing, 569, 836
interaction with, using frameworks, 64-67
ISBNdb, 650
logging errors to, 420
Microsoft SQL Server, 45
nonrelational database models, 47
open source, MySQL and PostgreSQL, 46
optimization of SQL, 808
Oracle, 45
protecting from attacks, 557
querying, steps involved, 65
saving form data sent from clients, 528
server-side code to store element position, 405
storing information for a draggable object, 404
storing user customization information, 407
storing whiteboard coordinates, 710
DataUnison eBay Research, 653, 895
Dave.TV (video service), 632, 895
dBASE, 47
declarations
XML, 844
XSLT, 856
decode( ) method (json class), 89
decrementing operators, 829
del.icio.us (bookmark service), 623, 624-626, 896
adding a post programmatically using PHP, 624-626
parameters to add a post, 624
DELETE statement (SQL), 53
delivery company, mashup pinpointing truck locations, 671
demographic information service, 650
density (in application layout), 160
Department of Corrections, data on felonies, 667
descriptors, GIF, 435
design of Ajax interfaces (see interfaces, designing)
design patterns, 28-31, 148
client/server, 28
MVC (model-view-controller), 30
three-tier (basic), 29
Unique URLs, 244
design phase
Ajax web application development, 25
software development life cycle, 23
DHTML Tree (Zapatec), 234
Diablo game series, 729
dimensional databases, 47
<div> elements
hints for user searches, 577
innerHTML property, placing content into windows, 347
making draggable, 455
popupContainer, 340
using with Ajax to replace <iframe> elements, 323-329
inserting content, 325-329
styling the <div> element, 324
whiteboard, 703
Django framework, 61
document fragments, 828
Document object
getElementById( ) method, 494
loading XML string into, 81
loadXML( ) method, 79
methods used to create nodes in a document tree, 107
setProperty( ) method, 83
Document Object Model (see DOM)
document tree, 103
root element or root node, 104
text element or text node, 104
W3C node types, 105
document.getElementsByClassName( ) function, 98
documentation, 26
documentFragment object, constructing tables, 260
DocumentFragment objects, 107
appending to list of child nodes, 108
Dojo Toolkit, 94, 880-884
dojo.io.bind, 881
drag-and-drop functionality, 457-460
adding a handle to draggable object, 458
creating draggables and droppables, 458
methods for HtmlDragSource object, 459
script to enable, 457
effects, 468
online demo, 470
handling results, 881
JSON with dot notation, 882
moving objects, 464
sending form data, 883
sortable list drag-and-drop functionality, 301-302
validation objects, 549-552
widgets for building form elements and forms, 515-517
dollar sign function, $( ), 98
DOM (Document Object Model), 5, 103-140
changing styles, 117-129
Internet Explorer and, 127
style information, 126
creating elements, attributes, and objects, 106-108
Document object traversal, 105
DOM Level 1 specification, 13
DOM Level 2 specification, 13, 106
Internet Explorer and, 224
DOM Level 3 specification, 13
XPath support by browsers, 83
element, attribute, and object information, 112-115
methods, listed, 113
properties, listed, 114
events, 129-135
creating, 130
information about, 131-133
initializing, 130
Internet Explorer and, 133
Form object, 490
importNode( ) method, 327
innerHTML property and, 138-140
JavaScript optimization and, 827-828
keyboard and mouse events, 764
loading XML file into Document object, 79
methods for dynamic table creation, 258
modifying and removing elements, attributes, and objects, 108-112
methods, listed, 110-112
parsing, 77
problems with using tables for layout, 248
specifications, 13
standardized list of DOM node types, 104
standards supported by browser engines, 18
tables, 135-138
traversing the DOM document tree, 115-117
methods, listed, 116
traversal properties, listed, 116
dot notation, 882
dragdrop components, 802
Draggable object, 344-345, 403, 455-456
change callback function, 456
container with handle for dragging point, 456
optional parameters, 455
Draggable object (Rico), 460
Draggables object, 455
dragging and dropping, 157
animation technique, 454-464
Dojo Toolkit, 457-460
Rico library, 460
script.aculo.us objects, 455-457
wz_dragdrop.js library, 460-463
Zapatec library, 463
sortable lists, 297-302
DrawCanvasUpdate( ) function, 713
drawing libraries, 472-481
JavaScript Vector Graphics Library, 472-481
Ajax application, 476-481
methods available to, 474-476
DrawPoint( ) method, 706
driving directions searches
MapQuest classic site, 6
MapQuest site using Ajax, 8
drop downs (form controls), 493
custom, 505-515
properties, 505
preparing for the addition of Ajax, 495
drop-down menus, 188-191
Droppables object, 456
add( ) method, optional parameters, 456
callback functions, 457
Dropzone object (Rico), 460
DTDs (document type definitions), 853
Frameset, 316
SOAP documents and, 598
Dun and Bradstreet Credit Check, 626, 896
DWR framework, 96
dynamic content, providing
with CGI, 37
with FastCGI, 37
with servlets, 38
with SSI, 38
dynamic directions (character movement), 747
E[ Top ]
eBay, 653, 653-655, 896
API and documentation, 653
input parameters for REST requests, 654
requesting search results from REST API, 654
REST methods available in the API, 654
ECMA (European Computer Manufacturer's Association) International, 12
Ecma International, 10
ECMAScript, 12
ActionScript implementation, 733
e-commerce sites, 652
economic games, 725
Edition 4 of ECMA-262, 19
Education and Outreach Working Group (WAI), 168
educational environment (web applications), 32
Edwards, Dean, 314
Effect object
Accordion( ) method, 237
changing to open multiple sections, 238
Position( ), 466
SlideUp( ) and SlideDown( ) methods, 239
Effect object (Rico), 464
effects and dragdrop components, 802
effects on objects (animation), 467-472
Dojo Toolkit, 468
script.aculo.us, 467
Zapatec Effects library, 470-472
efficiency of web applications, 150
electronic products data center, 653
Element interface, 106
Element object
hide( ) method, 242, 340
removeClassName( ) and addClassName( ) methods, 283
show( ) method, 242, 340
elements
DOM, 106
form, 482-484
SOAP document, 598
WSDL, 599-601
XML, 845
XSLT, 856-861
email addresses, validating, 540
embedded interpreters, FastCGI and, 37
empty( ) method, 556
encode( ) method, 90
Encoding namespace (SOAP), 598
end users, expecting too much of, 147
English Standard Version (ESV) Bible Lookup, 656, 897
Enterprise Resource Planning (ERP) packages, 62
entity headers (HTTP), 810
entity references, 849
Envelope namespace (SOAP), 598
environments (Ajax web applications), 31-33
commercial, 32
educational, 32
government, 33
intranet, 31
specific content, 33
equality testing, 537
ERP5, 62
error levels, 421
defining custom error levels, 422
errors, 408-433
displaying user errors, 420-433
following site design, 421-433
handling, 417-420
emailing the developer, 420
logging to a database, 420
notifying the user, 418
ignorable, 417
JavaScript, 409
requiring immediate attention, 417
server-side, 410-413
database, 412
external errors, 413
server scripting, 410-412
trapping, 414-417
Ajax requests, 416
throwing an error, 415
try...catch...finally block, 414
escaping potentially dangerous characters to the database, 557
ESPN main page, 143
ESV (English Standard Version) Bible Lookup, 656, 897
Ethernet protocol, 816
packets, 817
European Computer Manufacturer's Association (ECMA) International, 12
EvalError object, 409
event handling, 767-776
changes in direction, 770
receiving data, 774
starts and stops, 767-770
user input, 767
event listeners, 131
Event object, 132
constants and methods, 342
observe( ) method, 343, 442
pointerX( ) and pointerY( ) methods, 704, 766
EventCapturer object, 132
EventListener object, 132
events
DOM, 129-135
creating, 130
focus and, 343
information about, 131-133
initializing, 130
Internet Explorer and, 133
modules, 129
importNode( ) function that registers events, 327-329
replacement of DOM Events with XML Events, 11
Events object (example), 767-770
changes in direction, 770
collision events, 773
making requests and parsing commands from server, 774
events.js file, 783-786
Excel, 47
execution speed, 809
execution time, 808
optimizing in JavaScript, 826
Expires response header (HTTP), 813
Extensible HyperText Markup Language (see XHTML)
Extensible Markup Language (see XML)
Extensible Stylesheet Language Transformation (see XSLT)
extension blocks (GIF), 436, 438
F[ Top ]
Facebook, 656, 897
Faces.com, 642, 897
FastCGI, 37
FCL (Framework Class Library), 58
FedEx, 898
feed aggregators, 614
feedback
in Ajax web application design, 152
getting from users regarding errors, 428-432
FeedBlitz (blogging service), 620, 898
FeedBurner web services, 620, 898
MgmtAPI, 621
FeedMap, 627, 898
Fielding, Roy, 605
<fieldset> elements, 483
grouping associated form elements, 489
setting error indicator to checkboxes and radio buttons, 553
file menu, 192-212
adding Ajax, 210
code for browser detection, 198-199
CSS styles for Windows-like file menu, 195-198
JavaScript code for manipulating, 199-209
XHTML file, 192-195
file sharing, 691-703
file notification, 696-698
checking server for file notices, 696
get_file_notices.php file, 697
JSON response from server, 697
receiving the file, 698-703
delete_file.php, 700
PHP file checking indicator and giving response to sender, 702
sending user client monitoring for receiving, 700-702
server handling of get_file.php request, 698
sending a file, 692-696
PHP file to create form for file transfer, 692-694
saving file and alerting receiving user, 694
file size, 807, 808
file uploads from client to server, 529
financial services, 626
Firefox
character encoding changes, 367
feedback agent, 428
text size changes, 367
user changes to browser theme, 363
:first-child pseudoselector (CSS), 223
first-person shooter (FPS) games, 722
"Fixing the Back Button and Enabling Bookmarking for Ajax Apps", 244
Flash, 733
flat file databases, 47
flexibility of web applications, 150
Flickr, 155, 641, 899
example REST request, 642
example REST response, 642
JSON response to client, 649
methods available within the API, 643-648
organizing tools, 155
response formats, 642
REST request with JSON response to client (example), 648
focal point (of an application), 161
focus
keeping focus on a pop-up alert box, 339-343
poor focus in web application design, 144
focusOnPopUP( ) function (example), 340
fonts, 162-167
browser font size changes, 366
color contrasts, 166
commanding attention to text, 166
font families and their types, 163-166
spacing of text, 166
switching font sizes, 386-392
CSS font file, 387-389
font-size slider bar, 389-392
relative font sizes, 386
use of capital letters, 166
fonts.css file, 369
example of contents, 370
Food Candy, 656
for loops, optimization techniques, 826
form buttons, 493
<form> elements, 483
<fieldset> element, 489
id attribute (XHTML 1.0), 321
name attribute, 490
Form object
properties, 493
submit( ) and reset( ) methods, 493
Form.Validation object (example), 543-549
added functionality for Ajax, 558-561
forms, 28, 154, 482-533
accessibility, 485-488
aligning controls using CSS, 251
changing appearance of, 498
using CSS, 498
creating custom form controls
drop downs, 505-515
radio buttons and checkboxes, 499-505
custom form objects in libraries and toolkits, 515-519
Dojo Toolkit, 515-517
Zapatec library, 518-519
elements, 482-484
file transfer form, 692-694
GSearchForm object, 585
HTML forms, replacement with XForms, 11
larger form in the navigation window, 353-355
manipulation with JavaScript, 490-497
sending data with Dojo Toolkit, 883
server handling of Ajax request, 524-531
emailing form data sent from the client, 527
GET/POST/RAW POST requests, 525
getting file uploads, 529
saving form data in a database, 528
sending data back to the client, 529
server responses, 531-533
client handling of complex response, 532
reporting success or failure, 531
submission with MooTools, 880
submitting a form using Ajax, 519-524
code example, 522-524
function looping through elements and getting values, 521
switching to different languages, 399-400
(see also data validation)
forums, 155
forward button (browsers), problems with Ajax, 918
FPS (first-person shooter) games, 722
fragment identifiers
creating unique URL for bookmarks, 244
setting unique URLs for browser back button, 245
<frame> elements, 317
id attribute (XHTML 1.0), 321
frames, 316-323
animation, 442
animations with PNG format, 439
approximating iframes using Ajax and a <div> element, 323-329
inserting content, 325-329
styling the <div> element, 324
<frameset> and <frame> elements, 317
frameset, complete (example), 318
iframe, 319
packets, 816
XHTML and, 321-323
deprecation of frames and iframes, 321
if frames must be used, 322
using iframes as frames, 322
<frameset> elements, 317
Framework Class Library (FCL), 58
frameworks, 57
advantages of, 63-67
database interaction, 64
database interaction using Zend Framework, 65
client, 94-97
Dojo toolkit, 94
DWR, 96
jQuery, 96
other, 97
Prototype, 95
Sarissa, 97
Java, 60
Jakarta Struts, 60
Spring, 60
Tapestry, 61
moving objects, 464
.NET Framework, 58
PHP, 62
CakePHP, 62
Zend, 63
Zoop, 63
Python, 61
Ruby on Rails, 59
Sarissa, 83
using for animation, 453
(see also listings under names of individual frameworks)
full text site searches, 568
functionality, 153-158
code components based on, 802
common web tools, 153-155
determining tools needed, 157
porting desktop functionality to the Web, 153
tool tips, 355
tools in desktop applications, 156
types of functions in applications, 153
functions (XSLT), 861
G[ Top ]
games, 721-786
character animation, 735-753
moving the character, 742-753
walking loop, 735-742
collisions, 753-764
circular collision detection, 759-762
linear collision detection, 762-764
rectangular collision detection, 754-759
complete character.js file, 778-783
complete events.js file, 783-786
complete logic.js file, 776-778
event handling, 767-776
changes in direction, 770
collisions, 772
receiving data, 774
starts and stops, 767-770
user input, 767
Internet requirements, 732-735
game development with Ajax, 734
plug-ins for browsers, 733
resources for further information, 786
user input, 764-766
keyboard input, 765
mouse input, 766
web game genres, 721
adventure games, 726-727
arcade games, 731
first-person shooters (FPS), 722
other games, 732
puzzle games, 730
role-playing games (RPGs), 728-730
strategy games, 724-726
Gecko
future of, 19
standards supported, 18
general headers (HTTP), 810
generating data, 157
GeoRSS, 630
Gestalt effect, 183
GET and POST methods, 72, 525
parameters passed with Prototype Ajax object, 865
submitting form data with Ajax, 520
getAttribute( ) method, 113
getDomDocument( ) method, 86
getElementById( ) method, 77, 105, 494
getElementsByTagName( ) method, 77, 105
GIF image format
creating true-color GIF images, 438
history of, 435
how it works, 435-437
file structure, 435
palettes, 436
limitations of, 437
alpha transparency, 438
color depth, 437
global responders (Prototype), 867
global variables, 826
Gmail, 171
God-like strategy games, 725
golden ratio, 163
GoldenNumber.Net, 163
Goodman, Danny, 258
Google
Advanced Search page, 576
AJAX Search API, 581-593, 652
displaying results, 589-593
GSearchControl object, 582-585
GSearchForm object, 585
GWebSearch object, 586
Searchers available with, 581
using the API, 587-589
Class Reference site, 587
Gmail service, 172
Google Maps, 7, 627
Google Reader, 614
implementing a site search tool using Google API, 570-575
map technology, use in HouseMaps.com mashup, 660
search capabilities, 565
search engine, 651
search engine used for a site, 581
sign up site for an account, 575
web service APIs, reference listing, 899-901
government agencies, information from, 651
government environments (web applications), 33
graphing charts from user data (see bar graph based on user-submitted data)
graphs and charts, 157
GSearchControl object, 582-585
GSearchForm object, 585
Guha, R. V., 14
guided tours and wizards, 148
Gutmans, Andi, 41
GwebResult objects, 586
CSS structure, 592
example of use, 589
properties, 588
GWebSearch object, 586
H[ Top ]
handle to the image (animation object), 442
Hansson, David Heinemeier, 59
hasAttribute( ) method, 113
hasChildNodes( ) method, 113
head component of a web page, 791-792
header elements, ordering of, 292
heap sorts, 268
hierarchical databases, 47
High Performance JavaScript Vector Graphics Library, 472
hints to the user on search topics, 577-580
search submitted from hints, 580
Holovaty, Adrian, 61
HousingMaps.com, 660
HTML, 4
frames, deprecated, 321
HTML 5 draft specification, 12
produced by ASP.NET, 40
reformulation of HTML 4.01 as XML, 10
REST and, 605
standards supported by browser engines, 18
Version 4.01 Frameset DTD, 316
XHTML form elements versus, 484
(see also XHTML)
html object (dojo.lfx.html), slideBy( ) and slideTo( ) methods, 465
HtmlDragSource object, 459
HtmlDragSource( ) method, 458
HtmlDropTarget object, 459
HTMLEvent module, 129
HtmlWidget object, 515
HTTP, 4, 809-815
compression, 813-815
errors and error messags, 421
headers, 810-813
Expires header, 813
general and entity headery, 810
removing/modifying with Apache module, 812
response headers, 810
typical header from an Apache web server, 811
passing parameters to HTTP methods, 865
REST and, 605
servers, 36
status codes, 612
I[ Top ]
IBM DB2, 45
open source version, Express-C, 46
icons
images and symbols used for, 167
indicating Ajax actions, 240
id attribute
<iframe> element, 322
accessing form elements by, 494
using for quick customizations, 398
utilizing its flexibility in form elements, 494
XHTML 1.0, 321
IETF (Internet Engineering Task Force), 10
Atom Syndication Format protocol (RFC 4287), 16
<iframe> elements, 320
differences from <frame> element, 322
id attribute (XHTML 1.0), 321
rendering bug fix for Internet Explorer, 347
replacing using <div> element and Ajax, 323-329
using for asynchronous file transfer, 529
using instead of <frame>, 322
IIS (Internet Information Services), 36
customizations with ISAPI filters, 812
features, 37
HTTP compression, 814
image descriptor (GIF), 435
image rollovers, 185-188
CSS for browsers without scripting, 186
JavaScript code for, 185
JavaScript turned off in the browser, 186
images
in form controls, 487
indicating Ajax actions, 240
tab with multiple states in one image, 216-217
web application, 167
<img> elements, 321
implementation phase
Ajax web application development, 26
software development life cycle, 23
importNode( ) function
cross-browser version registering events and styles, 327-329
version for Internet Explorer, 224, 231
incrementing and decrementing operators, 829
indexes
database, 836
form index, 494
page, string and database indexing, 570
indexing, page, 569
information boxes, 348
informational methods (DOM), 113
informational properties (DOM), 114
initialization methods (event), 130
initializePageStateFromURL( ) function, 245
inline documentation, 27
inline frames (see <iframe> elements)
innerHTML property, 138-140
<div> element
acting as table wrapper, 262
placing content into windows, 347
setting responseText to, 277
applying data to DOM document tree, 260
documented problems, 140
DOM methods versus, 259
issue with <tbody> element in Internet Explorer, 261
using to put data into a table, 258
in-place editing, 157
<input> elements
adding alternative text, 488
checkbox and radio, using flexibility of id attribute, 494
images, 487
onblur( ) method, 558
placement of labels, 485
submit type, Ajax forms and, 520
tabindex attribute, 488
text, focus( ), blur( ), and select( ) methods, 493
user search input, 577
INSERT statement (SQL), 51
insertBefore( ) method, 109
insertion sorts, 268
simple implementation (example), 266
table sort (example), 270-275
insertRow( ) and insertCell( ) methods, 258
creating table rows and columns, 259
installation of web applications, time and cost savings, 674
instant messaging (IM), 691
interaction on a web page
in the year 2000, 7
changes brought about by Ajax, 9
interfaces, designing, 141-172
accessibility, 167-171
Ajax interface, 171
functionality, 153-158
common web tools, 153-155
determining tools needed, 157
tools in desktop applications, 156
types of functions in applications, 153
principles for Ajax web applications
consistency, 150
documentation and help, 152
feedback, 152
flexibility and efficiency, 150
navigation, 151
usability, 141-153
common design mistakes, 142-147
principles for Ajax web applications, 148-153
visualization, 158-167
application layout, 158-162
images and icons, 167
Internet Engineering Task Force (see IETF)
Internet errors, 413
Internet Explorer
:hover support on elements, 182
alpha transparency support, 439
alternatives to DOM stylesheet methods and properties, 127
CSS drop-down menus and, 191
CSS for image rollover, 187
CSS hack for breadcrumbs, 223
data URL problem workaround, 314
events, 133
font resizing issues, 386
:hover workaround, 188
<iframe> element, 320
importNode( ) function for, 224, 231
importNode( ) method, event attributes and, 329
innerHTML property, 138-140, 259
Internet Explorer (continued)
innerHTML/<tbody> issue, 261
workaround, 262
JavaScript error properties, 409
rendering bug, draggable box and, 345
Trident layout engine, 18
user changes, 363
W3C DOM stylesheets Recommendation and, 117
web site information on stylesheet handling, 129
XPath, 83
Internet Information Services (see IIS)
Internet protocols, 816
Internet relay chat (IRC), 691
interpreted languages, 41
intranets, use of Ajax web applications, 31
ISAPI filters, 812
httpZip, 815
ISBNdb, 650, 901
isset( ) method, 556
J[ Top ]
Jakarta Struts framework, 60
Java, 43
applets, 734
frameworks, 60
inline documentation, 27
Java Remote Method Invocation (Java RMI), 596
JRE (Java Runtime Environment), 734
servlets, 38
Java Virtual Machines (JVMs), 44
Javadoc parser, 27
JavaScript, xiii, 5
Ajax dependence on, 916
data validation, 536-552
specialized data checking, 539-543
using Dojo Toolkit, 549-552
using regular expressions, 538
validation object, 543-549
value checking, 537
draggable <div> element, 455
dynamically creating list to be used as table of contents, 293-295
errors, 409
execution speed, 809
frameworks, toolkits, and libraries, 863-891
Gecko 1.9 implementaton of, 19
giving search hints to the user, 577-579
image rollovers, 185
inline documentation, 27
jQuery library, 96
looping (animation object), 442-444
manipulating forms, 490-497
getting and setting element values, 493
getting form values, 490-493
modular client-side coding, 802
breaking code apart by functionality, 802
page-specific components, 803
moo.fx library, 96
optimizations, 822-830
Boolean variables, 823
code speed enhancements, 826-830
removing comments, 822
removing whitespace, 822
testing validity of a value, 823
using array and object literals, 824
produced by ASP.NET, 40
properties equivalent to CSS2 properties, 119-124
script.aculo.us library, 95, 238
slide show application, 307-311
sortable list initialization, 300
sorting, 264-275
quick sort algorithm, 269
shell sort algorithm, 268
specifications, 12
support by browser engines, 18
table pagination, 285-287
var keyword, 743
Vector Graphics Library, 472-481
Ajax application, 476-481
methods available to, 474-476
version 1.5, 12
version 1.7, 12
JavaScript Object Notation (see JSON)
JavaServer Pages (JSP), 38, 44
Johnson, Rod, 60
joins (database tables), 52
JPEG image format, 437
jQuery library, 96, 889-891
functions for Ajax request functionality, 889
JRE (Java Runtime Environment), 734
JSDoc parser, 27
jsGraphics library, 704
drawLine( ) and paint( ) methods, 706
methods for drawing vector shapes, 719
setColor( ) method, 718
JSON (JavaScript Object Notation), 68, 86
array and object literals, 826
evaluating in Prototype, 866
Flickr response, 642
handing in Dojo Toolkit, 882
parsing JSON strings, 90
requests and responses, 87-90
response from Flickr, handling, 649
response from server with whiteboard points, 713
response to language change request for a form, 401
response when file is being sent, 697
script handling RAW POST as, 526
search query response, 590
web site, 87
XML versus, 92-94
JSP (JavaServer Pages), 38, 44
JVMs (Java Virtual Machines), 44
K[ Top ]
Kaplan-Moss, Jacob, 61
KDE project, XHTML/WebCore browser engine, 18
keyboard input, 765
keypress event, 765
keys (database), 52
keyword searches, 566
through mobile technology (411Sync), 656
KHTML/WebCore, 18
standards supported, 18
L[ Top ]
<label> elements
array for changes in language-switching process, 399
placement for form elements, 485-488
switching data to JSON response, 402
LAMP (Linux, Apache, MySQL, PHP [Perl/Python]), 42
languages
changing site language with Ajax, 400-403
programming (see programming languages)
switching forms to different languages, 399-400
Last.fm, 632, 901
lastColumn property, 276
JavaScript insertion sort, 271
layers, 804
layout
application, 158-162
balance, 159
consistency in, 161
density, 160
general layout and navigation, 246
images, 167
linear layout on classic web sites, 158
modern example of linear approach, 160
organic layout, 158
rule of thirds (or golden ratio), 163
using CSS, 250-252
using tables, 247-250
page, 329-334
dynamic nature of pages, 330
separating structure from presentation, 333-334
site navigation, 175-246
menus, 175-212
layout engines (browser), 17
<legend> elements, 489
Lerdorf, Rasmus, 41
libraries, 453
book information database (ISBNdb), 650
jQuery, 889-891
MochiKit, 886-889
MooTools, 877-880
Rico, 875
Sarissa, 884-885
licenses, professional, 667
linear collision detection, 762-764
linear layout
classic web sites, 158
modern approach used in CSS Zen Garden, 160
line-of-sight path movement, 748
links
alternate stylesheet, 364
bottom-of-a-page navigation aids, 226-228
color theme switches, 397
main and alternate stylesheet links, 371
testing for broken links, 26
Linux, alert windows, 335
Listamatic (web site), 223
lists, 291-315
slide show application, 304-315
CSS styling rules, 305-307
JavaScript code, 307-311
server-side PHP script to send images, 312-314
working slide show using Ajax, 311
sortable, 297-302
Ajax and draggable lists, 302-304
CSS styling rules, 300
Dojo Toolkit, using, 301-302
JavaScript to initialize and make functional, 300
table of contents, 292-297
CSS rules for numbering system, 296
dynamically created with JavaScript, 293-295
trees of lists used in navigation boxes, 231-235
Zapatec DHTML Tree, 234
use of XHTML lists in menus, 192
used for navigation functionality, 291
using XHTML lists in breadcrumbs, 222
using XHTML lists in links at bottom of a page, 226
using XHTML lists in tabs, 213
vertical lists in navigation boxes, 235
load testing, 26
load( ) method, 79
loadMenu( ) function, 211
loadXML( ) method (Document), 79, 81
local variables, 828
logging errors, 420
logError.php script, 427
PHP constants, 410
Logic class
circular collision testing, 760
linear collision detection, 762
rectangular collision testing, 755
logic.js file (game logic), 776-778
login (chat application example), 676-678
JavaScript to check username validity, 676
login.php file, 678
logout.php file (chat application), 686
look of an application (see visualization)
lookup table (LUT) of square root values, 760
Luhn Formula, 541, 543
Luhn, Hans Peter, 543
M[ Top ]
Ma.gnolia (bookmark service), 624, 902
Mac OS X, alert windows, 335
Macromedia
Flash, 733
Shockwave, 734
magnifiers, 157
mail client (Gmail), use of Ajax, 172
maintenance (software development), 23
manipulation methods (DOM), 110-112
<map> elements, 321
Map24 AJAX, 628, 902
mapping services, 627-631
list of popular mapping services, 627
mashups and, 661
business opportunities, 671
Yahoo! Maps, 628-631
using GeoRSS feed, 630
Yahoo! Maps AJAX API library, 628
MapPoint, 627, 903
MapQuest
OpenAPI, 628, 902
web site after Ajaxification, 7
web site in classic web environment, 5-7
Markup Validation Service (W3C), 27
mashups, 658, 659-671
application portlets, 668
building, 668
choosing a subject, 669
coding the mashup, 671
decisions regarding the backend, 670
selecting data sources, 670
business uses of, 671
combining chat, file sharing, and whiteboard applications, 720
data sources, 665-668
public data, 665-667
definition and brief history of, 659
pitfalls and problems with, 661
adding services just because you can, 662
application clutter, 662
cohesiveness of combined services, 663
rebuilding something already built, 664
in Web 2.0 applications, 659
"What is a Mashup?" video on YouTube, 661
what they can do, 664
massive multiplayer online role-playing games (MMORPGs), 730
Matsumoto, Yukihiro, 43
McClanahan, Craig, 60
media types (CSS), 800
menus, 154
button and image navigation, 180-188
buttons, 180-184
image rollovers, 185-188
drop-down, 188-191
file menu, 192-212
adding Ajax, 210
JavaScript code for manipulating, 199-209
navigation, 175-212
simple navigation bar, 175-180
messages element (WSDL), 601
<meta> elements, 566
Meta Content Framework (MCF), 14
metadata
GIF images, 436
XML attributes, 845
MetaWeblog interface, 620
methods
considerations in web application design, 25
DOM table methods, 137
event, 132
informational DOM stylesheet methods, 126
Internet Explorer differences from DOM 2 stylesheet methods, 127
MgmtAPI, 621
Microsoft
adCenter, 902
ASP/ASP.NET, 40
browser wars with Netscape, 10
Excel, 47
MapPoint, 627, 903
.NET Framework, 58
built-in documentation capability, 26
.NET Remoting to implement RPC, 596
SQL Server, 45
open source, Express Edition, 46
Virtual Earth, 628
Visual C# Developer Center, 27
Visual Studio, 59
Windows Live Search, 652
(see also IIS; Internet Explorer; Windows systems)
MIME types
compression based on, 814
RSS and, 16
Miner, Wilson, 61
mixed content elements, 845
MMORPGs (massive multiplayer online role-playing games), 730
MNG (animated version of PNG), 439
MochiKit library, 886-889
Ajax in (Deferred object), 886-889
Async object, 886
model (data access) module, 30
model-view-controller (see MVC design pattern)
modular coding, 789-806
client side, 791-803
CSS, 795-802
JavaScript, 802
XHTML, 791-795
defined, 789
possible modularization in an Ajax application, 790
server side, 804-806
server-side components, 806
SQL, 805
using server side for structure, 804
modules
basic three-tier web application, 29
DOM specifications, 13
Event, 129
modulus 10 algorithm, 543
moo.fx, 95
MooTools library, 877-880
effects, 880
form submission, 880
making an Ajax request, 879
simple server requests, 877
mouse click event handling added to character class, 749-753
mouse input (games), 766
MouseEvent module, 129
MouseEvents, image rollovers, 185
movement functionality added to character, 743-747
Mozilla browsers
Gecko layout engine, 18
JavaScript error properties, 409
MSDN
Internet Explorer handling of stylesheets, 129
Windows Live Search, 652
MSHTML (Trident), 18
MSN Messenger, 903
MSN Spaces, 620, 903
MUD (multiuser dungeon/dimension) games, 728
multidimensional databases, 47
multistable perception, 183
music and video services, 631-636
list of some popular services, 632
YouTube, 632-636
MutationEvent module, 130
MVC (model-view-controller) design pattern, 30
incorporated into RIAs, 30
Jakarta Struts framework, 60
Ruby on Rails, 59
MySQL, 46
mysql_real_escape_string( ) function, 535, 557
Mystery House (adventure game), 727
N[ Top ]
name attribute
<form> element, 490
deprecation for certain elements in XHTML, 494
document.frames[] array of elements, 322
XHTML 1.0, 321
names (XML), 846
namespaces
SOAP, 598
XML, 846-848
Atom 1.0 versus RSS 2.0, 16
navigation, 175-246
general application layout and, 246
lack of, 146
lists used for, 291
menus, 175-212
button and image navigation, 180-188
drop-down menus, 188-191
file menu, 192-212
function of, 154
simple navigation bar, 175-180
other navigation aids, 221-243
accordion navigation, 236-239
Ajax and page loading, 240-243
breadcrumbs, 221-226
links at bottom of a page, 226-228
navigation boxes, 231-235
paged, 228-231
problems with Ajax navigation, 243-245
bookmarks, 244
browser back button, 245
tabs, 212-221
CSS tabs using XHTML lists, 213-215
image tabs, 216-217
tab content, 218-221
navigation boxes, 231-235
vertical lists, using, 235
navigation windows, 347-355
placing content into, 347-349
information boxes, 348
pop-up windows, 360-362
replacing alerts, prompts, confirms, etc., 349-355
confirmation window, 349-351
larger forms, 353-355
prompt window, 351-353
tool tips, 355-360
Necker cube, 183
Nederlof, Peter, 188
.NET Framework, 41, 58
architecture, 58
assemblies, 59
.NET Remoting, 596
NETaccounts (financial accounting), 626, 904
Netscape browsers
browser wars with Microsoft, 10
layout engines, 18
network databases, 48
network stack, 816
news and weather services, 636-641
list of some services, 637
NewsIsFree, 637-641
NewsCloud, 637, 904
NewsGator, 637, 904
NewsIsFree, 637, 637-641, 905
API functions for use with web service, 638
getNews( ) request, results of, 639
using SOAP and PHP to pull data from, 640
nodes
appending by specifying a location, 109
appending node to list of child nodes, 108
methods used to create, 107
referencing table nodes, 136
standardized list of node types, 105
nodeType property, 113
<noframes> element, 318
Nonstandard Event module, 130
O[ Top ]
O(n log n) sorting algorithms, 268
O(n2) sorting algorithms, 268
O'Reilly, Tim, 661
OASIS (Organization for the Advancement of Structured Information Standards), 596
object databases, 48
object literals, 825
object manipulations (animation), 467-472
object positioning (Rico), 464
obscurity, avoiding in application design, 145
one-stop shops, 149
onFailure property, 277
onreadystatechange property (XMLHttpRequest), 69, 80
onSuccess property, 277
Open Group, 596
open source services, 668
OpenAJAX Alliance, 94
openPageInDIV( ) function (example), 326
openPopUp( ) function, 340
Opera browsers
Presto layout engine, 19
user changes, 363
operating systems
alert windows, 335
fonts, 163-166
interoperable communication with SOAP, 597
optimization of Ajax applications, 807-839
Ajax optimization, 838
client and server communication, 838
code optimization, 839
data, 839
client-side, 818-830
JavaScript, 822-830
XHTML and CSS, 819-822
execution speed, 809
file size, 808
HTTP, 809-815
compression, 813-815
headers, 810-813
packets, 815-818
optimal sizes, 817
server side, 830-838
compression, 830-833
SQL, 833-838
Optrata mashup, 662
Oracle, 45
open source version, 10g Express Edition, 46
web site, 45
organic layout, 158
Organization for the Advancement of Structured Information Standards (OASIS), 596
organizing tools, 155
overflow: hidden (CSS rule), 442
P[ Top ]
packets, 815-818
optimal sizes, 817
requests for JavaScript, CSS, and media files, 818
TIP/IP, 808
page indexing, 569
page layout, 329-334
dynamic nature of pages, 330
separating structure from presentation, 333-334
page loading, status bar for Ajax, 240-243
page reloads, web pages in 2000, 7
paged navigation, 228-231
Ajax solution, 230
solution using DHTML techniques, 228
pagination, table, 283-291
sorting paginated tables, 289-291
using Ajax, 287-289
using JavaScript, 285-287
palettes, 436
panels, 149
parallel lines, 763
ParseKeypress( ) function (example), 765
ParseMouseClicks( ) function (example), 766
parseResponse function, 100
parsers
documentation, 27
validating parsers, 27
parseStateToQueryString( ) function, 245
parseXML( ) function, 80
parsing JSON strings, 90
path between two points approximating a straight line, 748
pause time between frame switching, 442
PC Direct Source storefront, 161
PEAR modules, 63
pen colors (whiteboard), 715-718
People Finders, 666
people searches, 667
perception, 3D objects in 2D space, 183
PeriodicalUpdater object, 868
PeriodicUpdater object, 101
persistent stylesheets, 372
Personal Web Server (PWS), 36
PhishTank, 905
phone number reference service, 650
phone numbers, validating, 539
photo services, 641-649
Flickr, 642-649
list of popular APIs, 641
PHP, 39, 41
adding a post programmatically to del.icio.us, 624-626
adding compression to a site, 831
base64_encode( ) function, 312
calling FeedBurner MgmtAPI's Find Feeds method, 622
chat client structure, 679
checking on parameters, 556
code to create a table for a server response, 277
error and logging constants, 410
error handler, custom, 411
frameworks, 62
full text site search, 568
get_points.php file, sending whiteboard information to clients, 713
handling a JSON request from the client, 88
inline documentation, 27
logError script, 427
modular server-side components used to build page structure, 805
mysql_real_escape_string( ) function, 535
parsing <meta> elements on a site, 566
preparing and sending search hints back to user, 579
put_message.php file (chat application), 687
REST request to AWS, 610
script handling a RAW POST sent as XML, 526
script handling an XML data request, 74
script handling GET or POST from the client, 525
script handling RAW POST as JSON, 526
server-side script handling dynamic bar graph request, 477
slide show application, script for Internet Explorer, 315
slide show application, script sending pictures from server, 312-314
SOAP request to AWS, 607
SoapClient( ), 637
using feeds to distrubute information, 615
using to pull data from NewsIsFree, 640
using with JSON, 87
phpDocumentor parser, 27
pictures (see images; photo services)
pipe character (|), separating lists, 226
Pixagogo, 642, 905
pixels (font sizing), 386
planning phase, Ajax web application development, 24
platform games, 731
plug-ins for browsers, 733
Flash, 733
Java applets, 734
Shockwave, 734
PNG alpha-transparency, support by browser engines, 18
PNG image format, 437, 439-453
alpha transparency, 439
building animations with
JavaScript looping, 442-444
more robust animation object, 444-448
PNG CSS, 441
using Ajax, 448-453
character animation, 735
differences from GIF, 440
pop-up boxes
building custom, 336
CSS styling rules for alert window, 338
dragging functionality, adding, 344-347
keeping focus and closing, 339-343
pop-up windows, 360-362
file sharing application, sending a file, 692
list of features, 361
user consent for, 361
(see also navigation windows)
port types element (WSDL), 601
Portable Network Graphics (see PNG image format)
portlets, 668
ports element (WSDL), 601
position of an object, animating dynamically, 464-467
POST method (see GET and POST methods)
postfix incrementing operators, 830
PostgreSQL, 46
preferred stylesheets, 372
font size, 389
presentation layer, separation from structure or data layer, 250
Presto, 19
standards supported, 18
print files (CSS), units of measurement, 371
processing instructions (PIs) in XML, 849
product codes (UPC Database), 653, 909
professional licenses, 667
Programmable Web, 668, 892
programming languages
compiled, optimization of, 807
language for the backend, optimization and, 808
object databases, 48
selecting for mashup backend, 670
Progressive JPEG, support by browser engines, 18
project managers, prerequisites for this book, xiv
prompt window, 351-353
properties
CSS2 and JavaScript equivalents, 119-124
Event object, 132-133
informational DOM stylesheet properties, 126
informational properties (DOM), 114
innerHTML, 138-140
Internet Explorer alternatives to DOM 2 stylesheet, 127
JavaScript errors, 409
nodeType, 113
traversal properties (DOM), 116
protocol stack, web services, 597
Prototype Framework, 95, 863-869
$F( ) function, 496
accordion object, 238
Ajax response callbacks, 864
Ajax with Prototype, 863
automating requests, 868
dynamic page updating, 867
Element object, show( ) and hide( ) methods, 242
evaluating JSON, 866
event handling, 577
Event object, pointerX( ) and PointerY( ) methods, 704
events and event handling, 342
global responders, 867
helper functions, 98
objects used with Ajax, 99-102
passing parameters to HTTP method, 865
use by Rico library as base, 460
use in file menu example, 198
pseudoselectors, Internet Explorer and, 223
Public Record Finder, 666
public records, 666
differences in availability from states, 666
puzzle games, 730
PWS (Personal Web Server), 36
Pythagorean theorem, 759
Python, 39, 42
frameworks, 61
Q[ Top ]
query string, passing page number in, 228, 230
Quest for Glory game series, 727
quick sorts, 268
quote_smart( ) function, 687
R[ Top ]
Rademacher, Paul, 660
radio buttons
custom, 499
properties, 499
form controls, 493
setting error indicator to, 553
Rails (see Ruby on Rails)
RangeError object, 409
RAW POST method, 525
PHP script handling as XML, 526
script handling as JSON, 526
RDF Site Summary (RSS 0.9 and 1.0), 16
reading style for web content, 147
readyState property (xmlDoc), 80
readyState property (XMLHttpRequest), 69
using in status bar, 242
real estate company, mashup for, 671
RealEDA Reverse Phone Lookup, 650, 905
Really Simple Syndication (RSS 2.0), 16
(see also RSS)
real-time communication (see communication needs for business)
real-time strategy games, 724
receptivity to user feedback, 142
rectangular collision detection, 754-759
reference services, 650
ReferenceError object, 409
regular expressions, 538
checking for valid email addreses, 540
Dojo validation objects, 551
phone number checks, 539
Rehabilitation Act, Section 508, 33
relational databases, 48-54
creating tables, 48-51
deleting records from a table, 53
getting records from the database, 52
implementation of dimensional databases, 47
inserting records into tables, 51
performance improvement with stored procedures, 54
updating records, 53
relative font sizes, 386
release (software development), 23
reloading web pages, classic web sites, 7
Remote Procedure Call (RPC), 595
removeChild( ) method, 110
removeEventListener( ) method, 131
repositioning objects and storing the positions, 403-407
dragging objects, 403
storing information in a database, 404
Representational State Transfer (see REST)
Request Entity Too Large error, 421
requirements analysis, 23
Ajax web application development, 24
residential information in the U.S. and Puerto Rico, 651
Resig, John, 96
resolution testing, 26
Responders object, 867
<response> elements
code attribute, 612
response headers (HTTP), 810
response to search query, 590
responseText property (XMLHttpRequest), 69
responseXML property (XMLHTTPRequest), 76
responseXML property (XMLHttpRequest), 69, 78
REST (Representational State Transfer), 604
eBay API, 653
requesting search results, 654
example request to Flickr web service, 648
Flickr request and response, 642
request to AWS, 609
triangle of nouns, verbs, and content types, 605
RESTful design, 605
Result objects (Google AJAX Search API), 587
CSS classes for each object, 592
Results objects (Google AJAX Search API)
CSS styling structures, listed, 592
reusability (web applications), 142
Rhapsody, 632, 906
RIAs (Rich Internet Applications), 30
Rich Site Summary (RSS 0.91 and 1.0), 16
Rico, 97
Rico library
animating an element on the page, 466
dragging and dropping capabilities, 460
object positioning through Effect object, 464
reference, 875
role-playing games (RPGs), 728-730
massive multiplayer online RPGs (MMORPGs), 730
root element or root node, 104
rows collection, 136
RPC (Remote Procedure Call), 595
RSS, 614
differences between Atom 1.0 and RSS 2.0, 16
feed results of getNews( ) request on NewsIsFree, 639
feed used to create REST web service, 615
feed validation, 616
GeoRSS feed, 630
standards and versions, 15
support by browser engines, 18
version 2.0, 15
Ruby, 39, 43
Ruby on Rails (RoR or Rails), 59
rule of thirds, 163
rules collection (Internet Explorer), 128
S[ Top ]
Safari browsers, WebCore layout engine, 18
sans-serif fonts, 162
Sarissa library, 97, 884-885
Ajax requests, 884
parsing data from the server, 885
web site, 83
XML, 885
XSLT transformation with, 84-86
scraping data for web feeds, 613
screen descriptor (GIF), 435
screen files (CSS), units of measurement, 371
screen.css file, 369
<script> elements needed to use Rico, 466
script.aculo.us, 95, 869-875
auto-completion, 869-872
components, 802
Draggable object, 344-345, 403
dragging and dropping functionality, 455-457
Effect object, 238
effects, 467, 875
online demonstration, 468
inline editing, 873-875
organic site layout, 159
sortable list, integrating Ajax, 303
sorting lists via drag-and-drop solution, 298
scripting languages, 39
server scripting errors, 410
used for ASP, 40
search engines, 154, 565
problems with sites using Ajax, 921
use of databases, 570
using on a local site, 570-575
searches, 565-593
dynamic searching with Ajax, 577-581
giving hints to the user, 577-580
submitting a search from hints, 580
Googling a site, 581-593
search services, 651
types of site searches, 565-576
advanced searching, 576
full text parsing, 568
keyword searches, 566
page indexing, 569
using public search engines on local sites, 570-575
web application search tools, 151
Section 508 of the Rehabilitation Act, 33
security, risks associated with use of Ajax, 919-921
SeeqPod (music service), 632, 906
<select> elements, placement of labels, 485
SELECT statements (SQL), 52
selectNodes( ) method, 83
selectSingleNode( ) method, 83
serialize( ) method, 86
serif fonts, 162
server responses, 531-533
example of client handling complex response, 532
reporting success or failure, 531
Server Side Include (SSI), 38
server side of Ajax applications, 804-806
breaking into components and modularizing, 806
modularizing SQL, 805
optimizations, 830-838
compression, 830-833
SQL, 833-838
using for structure, 804
server-side errors, 410-413
database, 412
external errors, 413
notifying the user, 419
server scripting errors, 410-412
server-side scripting, 28, 39-44
ASP/ASP.NET, 40
handling dynamic bar graph request (fa_stats.php), 477
Java, 43
logging errors, 427
PHP, 41
Python, 42
Ruby, 43
to web services, 607-610
Service Description level (web services), 597
Service Discovery level (web services), 597
Service Messaging level (web services), 597
Service Transport level (web services), 597
Service-Oriented Architecture (SOA), 596
services element (WSDL), 601
servlets (Java), 38, 44
setAttributeNode( ) method, 107
setDragTarget( ) method, 458
setSiteRestriction( ) method (GwebSearch), 586
shapes, drawing for whiteboard, 719
Shea, Dave, 332
shell sorts, 268
Ship, Howard M. Lewis, 61
Shockwave, 734
shopping carts, 155
shopping services, 652-655
eBay, 653-655
.shtml file extension, 38
SimCity, 725
simple path movement, 747
simple to use applications, 142
Simpy (bookmarking service), 623, 906
slang dictionary, 650, 910
Slashdot, paneled design pattern, 149
slide show application, 304-315
Ajax-enabled, in action, 314
CSS styling rules, 305-307
JavaScript code, 307-311
server-side PHP script to send images, 312-314
working slide show using Ajax, 311
slideBy( ) method, 465
slider bar for font sizes, 389-392
slideTo( ) method, 465
sliding an element around on the page, 464
Smarty, 63
SmugMug, 641, 907
Snipshot, 642, 907
SOA (Service-Oriented Architecture), 596
SOAP, 597
request to AWS using PHP, 607
request to NewsIsFree, 637
using to pull data from NewsIsFree, 640
Social Security numbers, validating, 540
software development life cycle, 22-24
simplification for web applications, 24
Sortable object, 298
create( ) method, options to pass in object parameter, 298
onUpdate callback, 303
sorting
lists, 297-302
tables, 264-279
JavaScript versus Ajax sorting, 279
JavaScript, using, 264-275
keeping style with sorts, 280-283
paginated tables, 289-291
using Ajax, 275-279
sorting algorithms, 268-269
Sowden, Paul, 372
spacing, text, 166
spellcheckers, 157
spider performing a full text search, 569
spreadsheets, 157
Spring framework, 60
SQL (Structured Query Language)
CREATE TABLE statement, 49
DELETE statement, 53
INSERT statement, 51
Microsoft SQL Server, 45
modularizing in server-side coding, 805
optimization, 809, 833-838
inline queries, 834-837
stored procedures, 837
origin of, 45
retrieving and storing information for draggable object, 404
SELECT statements, 52
stored procedures, 54
UPDATE statements, 53
SQL injection attack, 535
function dealing with quotes, 687
square collision detection, 754
SRC Demographics, 650, 907
SSI (Server Side Include), 38
ASP (Active Server Pages), 40
stamps for whiteboard application, 719
standards organizations, 10
standards, compliance with, 19
(see also web standards)
static directions (character movement), 742
status bar, showing Ajax actions, 242
Status object, 242
status property (XMLHttpRequest), 69
statusText property (XMLHttpRequest), 69
Stenhouse, Mike, 244
storage engines (MySQL), 46
stored procedures, 54, 805, 837
storing information, 155
desktop application tools, 157
straight line between two points, 748
strategy games, 724-726
abstract, 724
real-time, 724
turn-based, economic, and God-like, 725
stress testing, 26
StrikeIron Historical Stock Quotes, 626, 907
StrikeIron Residential Lookup, 651, 908
StrikeIron U.S. Census, 651, 908
string indexing, 569
structure, abstracting to wrappers or containers, 330
structure.css file, 369
structured applications, 142
Structured Query Language (see SQL)
structures (design), 25, 148
Struts framework, 60
style properties (CSS), 796-800
styles, 117-129
CSS rule types, 117
importNode( ) function that registers styles, 327-329
information about, 126
Internet Explorer and, 127
modifying and removing style, 118
stylesheet manipulation methods, 118
(see also CSS)
stylesheets
changing page style in browsers, 364-366
user-defined stylesheets, 364
switching, 368-385
alternate stylesheets, 371
creating the stylesheets, 368-371
multiple customizations, 381-385
rembering user selection, 375-381
simple style-switching object, 372-375
XSLT, 855
(see also CSS)
StyleSwitcher class (example), 381-385
modifying for color theme switches, 393-397
Submit button (form), 520
onclick event attached, 520
success/failure response, 531
Sunlight Labs, 656, 908
Suraski, Zeev, 41
SVG (Scalable Vector Graphics), 467
support by browser engines, 18
symbols used for web application icons, 167
syndication, 14, 613
Atom, 16
RSS, 15
support by browser engines, 18
using syndicated web feed to create web services, 613-617
SyntaxError object, 409
T[ Top ]
tabindex attribute (<input>), 488
table of contents, 292-297
CSS rules for numbering system, 296
JavaScript function dynamically creating list used as, 293-295
table pagination, 283-291
Ajax, 287-289
sorting paginated tables, 289-291
using JavaScript, 285-287
tables, 135-138, 247-283
accessible, 252-258
Ajax and, 263
components of, 135
DOM table methods, 137
interacting with, 258-263
dynamically creating tables, 258-262
updating content in a row, 262
layout using CSS instead of, 250-252
problems with, 248
sorting, 264-279
JavaScript versus Ajax sorting, 279
JavaScript, using, 264-275
keeping style with sorts, 280-283
using Ajax, 275-279
use for page layout, 247-250
old layouts, 248
tabs, 212-221
content of, 218-221
JavaScript code for dynamic content, 219-221
CSS tabs using XHTML lists, 213-215
creating illusion of depth, 215
image tabs, 216-217
XHTML structure, 216
tags, XML, 845
Tapestry framework, 61
target attribute (HTML), 694
target audience
geared toward a specific technology, 33
web application design and, 25
<tbody> elements, 261
sorting in a table, 270
TCP/IP packet size, 808
Technorati web service, 621, 909
telephone numbers, lookup service, 650
testing (software development), 23
testing and release phase, Ajax web application development, 26
text
color contrast with background, 166
commanding attention to, 166
fonts in web applications, 162-167
spacing of, 166
text boxes (form controls), 493
text editors, 156
text element or text node, 104
Text node, creating, 107
<textarea> elements
focus( ), blur( ), and select( ) methods, 493
images, 487
three-tier (basic) design pattern, 29
throw statement, 415
title attribute, alternative stylesheet links, 372
tolerance of user mistakes and abuse, 142
tool tips, 355-360
code for customizable tool-tip object, 355-359
modifications for Ajax functionality, 359
toolkits, 453
tools
common web application tools, 153-155
desktop applications, 156
determining tools needed for web application, 157
porting desktop application tools to web applications, 158
Total Annihilation (strategy game), 724
Transact-SQL (T-SQL), 45
transforming or formatting XML documents (see XSLT)
transparency
alpha transparency, 438
GIF images, 437
transport type for mashup backend, 670
traversal methods (DOM), 116
traversal properties (DOM), 116
trees
of lists used in navigation boxes, 231-235
vertical lists, 235
Zapatec DHTML Tree, 234
web application design pattern, 149
Trident browser engine, 18
true color
images in GIF file format, 438
support by PNG format, 440
try...catch...finally block, 414
turn-based games, 725
turnDataPage( ) function, 285
revised for Ajax, 287
turnPage( ) function, 229, 240
altering to call XMLHttpRequest, 230
TypeError object, 409
TypePad (blog service), 620, 909
types element (WSDL), 601
U[ Top ]
U. S. census information, 650, 908
U.S. Congress information service, 656, 908
U.S. government web applications, 33
U.S. Postal Service, 910
UDDI (Universal Discovery, Description, and Integration), 604
UIEvent module, 129
Unicode, 851
Unique URLs design pattern, 244
units of measure
CSS screen and print files, 371
font sizes, 386
Universal Discovery, Description, and Integration (UDDI), 604
UPC Database, 653, 909
UPDATE statements (SQL), 53
Updater object, 101, 867
upgrades (software development), 23
UPS, 909
Urban Dictionary, 650, 910
URIError object, 409
URIs, resources accessed from HTTP, 605
URLs
browser bookmarks, 244
unique URL for browser back button, 245
UrlTrends, 910
usability, 141-153
common design mistakes, 142-147
bloat, 143
expecting too much from end users, 147
lack of navigation, 146
obscurity, 145
poor focus, 144
reading style for web content, 147
design principles, 148-153
consistency, 150
documentation and help, 152
feedback, 152
flexibility and efficiency, 150
minimal and aesthetic structure, 148-150
navigation, 151
forms, 488
user input (games), 764-766
event handling, 767
keyboard input, 765
mouse input, 766
user interface (UI) layer, 804
user-defined stylesheets, 364
username validation, 676
users
enabling to provide feedback for errors, 428-432
notifying of errors, 418
Utils.Draggable( ) method (Zapatec), 463
optional properties to define draggable element, 463
V[ Top ]
validate object (Dojo), 549-551
validate.us object (Dojo), 551
validation
form data (see data validation)
testing phase, web appplication development, 26
username (chat example), 676
ValidationTextbox object, 516
validators, 28
for feeds, 617
validity (XML), 853
value checking
client-side, using JavaScript, 537
on the server, 557
van Rossum, Guido, 42
var keyword, 743
variables
defining multiple with single var statement, 828
JavaScript execution speed and, 826
VBScript, 40
vertical lists, 235
video services (see music and video services)
view module, 30
Virtual Earth, 628, 911
visibility of windowed elements, 346
Visual C# Developer Center, 27
Visual Studio, 59
visualization, 158-167
application layout, 158-162
commanding attention to text, 166
fonts, 162-167
color contrasts, 166
font families and their types, 163-166
images and icons, 167
text spacing, 166
W[ Top ]
W3C, 10
CSS (Cascading Style Sheets) specifications, 14
DOM Technical Reports web page, 13
Geo (WGS84 lat/long) Vocabulary, 630
SOAP Version 1.2 Recommendation, 597
standardized list of DOM node types, 104
validators, 27
Web Accessibility Initiative (WAI), 168
web services definition, 594
WSDL (Web Services Description Language), 599
XHTML 2.0 Recommendation, 483
XHTML family of recommendations, web site information, 11
XSL family of Recommendations, 17
WAI (Web Accessibility Initiative), 168
WAI-WCAG 1.0 guidelines
avoiding deprecated features of technologies, 321
avoiding tables for layout whenever possible, 252
general site layout (table of contents), 297
header elements, 292
labels and form controls, 486
lists, 291
pop-up windows, 362
relative font sizes, 387
searching capabilities, 576
walking loop (character animation), 735-742
Wayback Machine
Amp main page, 144
Cyber-Safari Internet Cafe site, 329
WCAG 1.0 (Web Content Accessibility Guidelines 1.0), 168
weather services, 911
example using Yahoo! Weather feeds to create a service, 614-617
WeatherBug, 637
Yahoo! Weather feed, 614
(see also news and weather services)
Web 2.0, 20
interaction between user and web application, 363
mashups in applications, 659
Web Accessibility Initiative (WAI), 168
Web AIM, 912
web application development, 22-34
application environments, 31-33
commercial, 32
educational, 32
government, 33
intranet, 31
specific content, 33
design patterns, 28-31
basic three-tier, 29
client/server, 28
MVC (model-view-controller), 30
RIAs (Rich Internet Applications), 30
design phase, 25
developers, requirements for, 33
implementation phase, 26
planning phase, 24
software development life cycle, 22-24
testing and release phase, 26
what Ajax is not, 34
(see also interfaces, designing)
web containers, 38
Web Content Accessibility Guidelines (WGAC)
web application development issues, 25
Web Content Accessibility Guidelines 1.0 (WCAG 1.0), 168
Web Design Group (WDG), validators, 28
web developers, prerequisites for this book, xiv
web feeds, 613-617
syndication, 613-617
validation of feeds, 616
Web Hypertext Application Technology Working Group (WHATWG), 12
web page components, 3-9
Ajax, 4
case study of classic versus Ajax web site, 5
classic, 4
web page for this book, xix
web servers, 36-39
Apache HTTP Server and IIS, 36
CGI (Common Gateway Interface), 37
FastCGI, 37
servlets, 38
SSI (Server Side Include), 38
Web Service List, 668
web services, 594-618
Ajax and, 606-612
client requests for web services, 606
gathering AWS response and formatting for the client, 610
sending web service response, 612
server-side scripting to services, 607-610
APIs, 618, 619-658
Ajax and, 657
blogging services, 620-623
bookmark services, 623-626
financial services, 626
mapping services, 627-631
music and video services, 631-636
news and weather services, 636-641
other services, 656
photo services, 641-649
reference, 892-915
reference services, 650
search services, 651
shopping services, 652-655
architectures, 594-606
REST protocol, 604
RPC (Remote Procedure Call), 595
SOA (Service-Oriented Architecture), 596
SOAP standard, 597
UDDI protocol, 604
WSDL protocol, 599-604
defined, 594
listings of available services on the Internet, 668
next step, 658
programming, books about, 670
protocol stack, 597
using web feeds to create services, 613-617
(see also mashups)
Web Services Description Language (see WSDL)
web sites, enhancing to become true applications, xiii
web standards, 9-17
CSS (Cascading Style Sheets), 13
DOM (Document Object Model), 13
JavaScript, 12
support by browser engines, 17
syndication, 14
Atom, 16
RSS, 15
XHTML, 10
XML, 14
XSLT and XPath, 17
WebEx (chat application), 675
Weblogs.com, 621, 912
Webmashup.com, 668
WebserviceX.NET, 668
well-formed XML documents, 848
What You See Is What You Get (see WYSIWYG)
WHATWG (Web Hypertext Application Technology Working Group), 12
whiteboards, 703-719
collecting mouse movements for drawing on the board, 704
communication, 707-714
collecting points to send to server, 708-709
drawing on other boards, 711-714
sending mouse movements, 709-711
drawing on the board, 706
enhancements
pen colors, 715-718
predefined stamps and shapes, 719
JavaScript code to build a whiteboard, 704
library to add drawing functionality, 704
whitespace, 819
controlling density in application layout, 161
directing attention to application focal point, 161
removing from JavaScript code, 822
removing from XHTML and CSS files, 819
widgets
available to HtmlWidget object, 515
available to ValidationTextbox object, 516
Wikipedia, 155, 650
wikis, 149
Williams, Ken and Roberta, 727
Willison, Simon, 61
window object, open( ) method, 361
window.location.hash, 245
window.location.href, pop-up windows, 362
windowed elements, toggling visibility, 346
Windows Live Custom Domains, 656, 912
Windows Live ID Client SDK, 912
Windows Live Search, 652, 913
Windows systems
alert windows, 335
errors, 418
windows, opening new windows without target attribute, 694
Wizardry: Proving Grounds of the Mad Overlord (FPS game), 722
wizards, 148
Wordtracker, 913
World of Warcraft, 730
World Wide Web Consortium (see W3C)
World Wide Web, example of RESTful implementation, 605
wrappers, objects on web pages, 330
WSDL (Web Services Description Language), 599-604
AWS WSDL document (example), 601-604
elements in WSDL documents, 599-601
WYSIWYG (What You See Is What You Get)
editors, 156
software generating code for old browsers, 10
wz_dragdrop.js library, 460-463
X[ Top ]
XForms, 483
XFrames, 321
XHTML, 5
Ajax chat client (example), 679
chapter markup (example), 292
closing a pop-up window, 339
Dojo form widgets, 517
filemenu.html (example), 192-195
forms, 482-490
form elements, 482-484
frames and, 321-323
deprecation of frames and iframes, 321
if frames must be used, 322
using iframes as frames, 322
Version 1.0 Frameset DTD, 316
lists (see lists)
XHTML (continued)
modularity of files, 791-795
page components, 791-793
smaller pieces for body of a page, 793-795
optimizations, 819-822
removing comments from files, 819
removing unnecessary whitespace, 819
shortening class and id names, 821
produced by ASP.NET, 40
server response, client handling of, 532
simple document (example), 103
slide show list, 305
specifications, 10
support by browser engines, 18
tables, 135-138
tables, building, 252
version 1.0, 10
version 1.1, 10
version 2.0 draft specification, 11
XML, 5, 843-854
anatomy of a document, 844-854
character encodings, 851
character references, 851
comments and processing instructions, 849
DTDs, 853
elements and attributes, 845
entity references, 849
name syntax, 846
namespaces, 846-848
validity, 853
well formed, 848
data passed with POST and GET requests, 72
documentation comments in C#, 27
handling an XML data request, 74
JSON versus, 92-94
response document for AWS request, 610
REST request to AWS, 609
Sarissa library capabilities, 885
search query response passed to client, 590
server handling RAW POST as, 526
SOAP, 597
specifications, 14
string, loading into a Document object, 79-82
support by browser engines, 18
use in web services, 594
XML Link, 609
options, 609
XML Scratch Pad, 609
xmlDoc object, parsing, 80
XMLHttpRequest object, 68
calling Prototype Ajax.Request, parseResponse function with, 99
calling with turnPage( ) function, 230
creating a request function, 71
creating dynamic breadcrumbs, 226
creating in cross-browser manner, 70
creating XML requests and responses, 71
handling the server response, 76
methods, 69
properties, 69
responseXML property, 78
web services and, 657
XML-RPC, 596
XPath, 17, 82-84
support by browser engines, 18
XSLT, 5, 84-86, 854-862
elements, 856-861
history of, 855
specifications, 17
stylesheets, 855
support by browser engines, 18
using functions, 861
XSLTProcessor object, 86
Y[ Top ]
Yahoo! Maps, 627, 628-631
AJAX API library, 628
using GeoRSS feed, 630
Yahoo! Search, 652
Yahoo! UI, 97
Yahoo! Weather, 614
Yahoo! web services APIs, reference, 913
YouTube, 632, 632-636, 915
errors returned by, 633
methods available for use with API, 633
parsing response and putting results into XHTML application, 635
request using youtube.videos.list_featured method, 634
response to request, 634
"What is a Mashup?" video, 661
Z[ Top ]
Z Object Publishing Environment (Zope), 62
Zapatec DHTML Tree, 234
creating a vertical list, 235
Zapatec library
dragging and dropping capabilities, 463
Effects library, 470-472
form classes, 518-519
Zen Garden site (CSS), 332
separating structure from presentation, 333-334
Zend engine (PHP), 41
Zend Framework, 63
protecting a query from SQL injection attack, 536
z-index properties, 345
<iframe> element and, 347
Zoop framework, 63
Zope framework, 62
Zorn, Walter
High Performance JavaScript Vector Graphics Library, 472
jsGraphics library, 704
wz_dragdrop.js library, 460-463
Return to Ajax: The Definitive Guide