| Step | Component | Action | readyState | Status Code | Time Estimate |
|---|---|---|---|---|---|
| 1 | User | Triggers event | - | - | 0ms |
| 2 | JavaScript | Creates XHR object | 0 (UNSENT) | - | ~5ms |
| 3 | JavaScript | Configures request | 1 (OPENED) | - | ~5ms |
| 4 | JavaScript | Sets event handlers | - | - | ~5ms |
| 5 | Browser | Sends HTTP request | 2 (HEADERS_RECEIVED) | - | ~10ms |
| 6 | Network | Request travels | - | - | 50-500ms |
| 7 | Server | Processes request | - | - | 0-2000ms |
| 8 | Server | Sends response | - | 200,404,500 | ~5ms |
| 9 | Network | Response travels | 3 (LOADING) | - | 50-500ms |
| 10 | Browser | Receives response | 4 (DONE) | - | ~10ms |
| 11 | JavaScript | Processes data | - | - | ~5ms |
| 12 | Browser | Updates DOM | - | - | ~5ms |
| 13 | User | Sees updated page | - | - | ~570ms total |
User types "apple" in search box ↓ Keyup event triggers JavaScript ↓ XMLHttpRequest created for search ↓ Request sent to: /search?q=apple ↓ Server queries database ↓ Returns JSON: ["apple pie", "apple juice", "apple watch"] ↓ JavaScript processes response ↓ Displays dropdown suggestions ↓ User sees results without page reload
User fills out registration form ↓ Clicks "Submit" button ↓ JavaScript intercepts form submit ↓ Sends POST request with form data ↓ Server validates and saves data ↓ Returns success/error response ↓ JavaScript shows message on same page ↓ No page refresh needed
User scrolls to bottom of page ↓ Scroll event detected ↓ AJAX request for next page of content ↓ Server returns next 10 items ↓ JavaScript appends items to page ↓ User sees more content seamlessly
| Aspect | Traditional | AJAX |
|---|---|---|
| Page Reload | Full page reload | Partial update |
| User Experience | White flash, interruption | Smooth, seamless |
| Bandwidth Usage | Entire page downloaded | Only data exchanged |
| Server Load | Higher (sends full HTML) | Lower (sends/receives data only) |
| Response Time | Slower (full render) | Faster (data only) |
| State Preservation | State lost | State maintained |
| Error Recovery | Page reload needed | Retry without reload |
| UX Patterns | Limited | Rich, interactive |
This comprehensive workflow diagram shows how AJAX enables modern, responsive web applications by allowing background communication with servers while keeping the user interface responsive and interactive.