| |
| |
Preface | |
| |
| |
| |
Ajax Fundamentals | |
| |
| |
| |
Reinventing the Web | |
| |
| |
Web Page Components | |
| |
| |
Modern Web Standards | |
| |
| |
Browsers | |
| |
| |
Standards Compliance | |
| |
| |
Welcome to Web 2.0 | |
| |
| |
| |
From Web Sites to Web Applications | |
| |
| |
The Transition | |
| |
| |
Basic Web and Ajax Design Patterns | |
| |
| |
Application Environments | |
| |
| |
The Developer | |
| |
| |
What Ajax Is Not | |
| |
| |
| |
Servers, Databases, and the Web | |
| |
| |
The Web Server | |
| |
| |
Server-Side Scripting | |
| |
| |
Databases | |
| |
| |
Getting Data Into and Out of Relational Databases | |
| |
| |
Interfacing the Interface | |
| |
| |
Frameworks and Languages | |
| |
| |
What Good Are Frameworks? | |
| |
| |
| |
Foundations: Scripting XML and JSON | |
| |
| |
XML | |
| |
| |
JSON | |
| |
| |
Choosing a Data Exchange Format | |
| |
| |
A Quick Introduction to Client Frameworks | |
| |
| |
Simplifying Development | |
| |
| |
| |
Manipulating the DOM | |
| |
| |
Understanding the DOM | |
| |
| |
We've Already Met | |
| |
| |
Manipulating DOM Elements, Attributes, and Objects | |
| |
| |
Change That Style | |
| |
| |
Events in the DOM | |
| |
| |
DOM Stuff for Tables | |
| |
| |
Is innerHTML Evil? | |
| |
| |
| |
Designing Ajax Interfaces | |
| |
| |
Usability | |
| |
| |
Functionality | |
| |
| |
Visualization | |
| |
| |
Accessibility | |
| |
| |
The Ajax Interface | |
| |
| |
| |
Ajax Foundations | |
| |
| |
| |
Laying Out Site Navigation | |
| |
| |
Menus | |
| |
| |
Tabs | |
| |
| |
Navigation Aids | |
| |
| |
Problems with Ajax Navigation | |
| |
| |
General Layout | |
| |
| |
| |
Fun with Tables and Lists | |
| |
| |
Layout Without Tables | |
| |
| |
Accessible Tables | |
| |
| |
Sorting Tables | |
| |
| |
Tables with Style | |
| |
| |
Table Pagination | |
| |
| |
Lists 2.0 | |
| |
| |
Lists for All Seasons | |
| |
| |
| |
Page Layout with Frames That Aren't | |
| |
| |
Using Frames | |
| |
| |
XHTML and Frames | |
| |
| |
The Magic of Ajax and a DIV | |
| |
| |
Page Layout | |
| |
| |
| |
Navigation Boxes and Windows | |
| |
| |
The Alert Box | |
| |
| |
Integrating the Window | |
| |
| |
Navigation Windows | |
| |
| |
Tool Tips | |
| |
| |
The Necessary Pop Up | |
| |
| |
| |
Customizing the Client | |
| |
| |
Browser Customizations | |
| |
| |
Stylesheet Switching | |
| |
| |
Switching Different Customizations | |
| |
| |
Easy Font-Size Switching | |
| |
| |
Creating Color Themes | |
| |
| |
Throwing Ajax into the Mix | |
| |
| |
Changing Site Language with Ajax | |
| |
| |
Repositioning Objects and Keeping Those Positions | |
| |
| |
Storing It All in the Database | |
| |
| |
| |
Errors: To Be (in Style) or Not to Be | |
| |
| |
Error Handling on the Web | |
| |
| |
Should I React to That Error? | |
| |
| |
Handling an Error with Care | |
| |
| |
Integrating the User Error | |
| |
| |
| |
This Ain't Your Father's Animation | |
| |
| |
Animation on the Web | |
| |
| |
What Is Wrong with GIF? | |
| |
| |
Building Animation with the PNG Format | |
| |
| |
Ajax Animations | |
| |
| |
| |
A Funny Thing Happened on the Way to the Form | |
| |
| |
XHTML Forms | |
| |
| |
Using JavaScript | |
| |
| |
Fancier Forms | |
| |
| |
The Basics of Ajax and Forms | |
| |
| |
Accepting Ajax-Delivered Data | |
| |
| |
Server Responses | |
| |
| |
| |
Data Validation: Client, Server, or Both | |
| |
| |
Data Validation Is Important | |
| |
| |
Validation with JavaScript | |
| |
| |
CSS Notification of Errors | |
| |
| |
Validation on the Server | |
| |
| |
Ajax Client/Server Validation | |
| |
| |
| |
Ajax in Applications | |
| |
| |
| |
Search: The New Frontier | |
| |
| |
Types of Site Searches | |
| |
| |
Dynamic Searching with Ajax | |
| |
| |
Googling a Site | |
| |
| |
| |
Introducing Web Services | |
| |
| |
What Is a Web Service? | |
| |
| |
Web Service Architectures | |
| |
| |
Ajax and Web Services | |
| |
| |
Web Feeds | |
| |
| |
Web Service APIs | |
| |
| |
| |
Web Services: The APIs | |
| |
| |
Publicly Available Web Services | |
| |
| |
Ajax and the API | |
| |
| |
The Next Step with Services | |
| |
| |
| |
Mashups | |
| |
| |
Mashups in Web 2.0 Applications | |
| |
| |
What Are Mashups? | |
| |
| |
Mashups As Applications | |
| |
| |
Data Sources | |
| |
| |
Application Portlets | |
| |
| |
Building a Mashup | |
| |
| |
Mashups and Business | |
| |
| |
| |
For Your Business Communication Needs | |
| |
| |
Businesses and Ajax | |
| |
| |
Real-Time Communication | |
| |
| |
File Sharing | |
| |
| |
Whiteboards | |
| |
| |
Combining Applications | |
| |
| |
| |
Internet Games Without Plug-ins | |
| |
| |
Gaming on the Web | |
| |
| |
Internet Requirements | |
| |
| |
Animating a Character | |
| |
| |
Basic Collisions | |
| |
| |
User Input | |
| |
| |
The Basics of Event Handling | |
| |
| |
Putting It All Together | |
| |
| |
| |
Wrapping Up | |
| |
| |
| |
Modular Coding | |
| |
| |
What Is Modular Coding? | |
| |
| |
The Client Side | |
| |
| |
The Server Side | |
| |
| |
| |
Optimizing Ajax Applications | |
| |
| |
Site Optimization Factors | |
| |
| |
HTTP | |
| |
| |
Packets | |
| |
| |
Client-Side Optimizations | |
| |
| |
Server-Side Optimizations | |
| |
| |
Ajax Optimization | |
| |
| |
| |
References | |
| |
| |
| |
The XML and XSLT You Need to Know | |
| |
| |
| |
JavaScript Framework, Toolkit, and Library References | |
| |
| |
| |
Web Service API Catalog | |
| |
| |
| |
Ajax Risk References | |
| |
| |
Index | |