AJAX 推動 Web 應用從「頁面集合」向「單頁應用」演進,形成兩極架構模式:
| 維度 | HTML 增強 | Client/SOA |
|---|---|---|
| 頁面導航 | 瀏覽器原生 | 前端路由 (History API) |
| 狀態管理 | Server Session | Client Store (Memory/IndexedDB) |
| 渲染位置 | Server | Client (CSR) / 混合 (SSR/SSG/ISR) |
| API 設計 | HTML 片段 / 簡易 JSON | 標準化 REST / GraphQL / gRPC-Web |
| 團隊結構 | 全端 / 後端主導 | 前端專職 + 後端 API 團隊 |
| SEO | 天然支援 | 需 SSR/SSG/Prerender |
| 安全邊界 | 後端集中 | 雙重防護 (前端攔截 + 後端鑑權) |
// HTML 增強 (jQuery + 後端渲染片段)
$('#add-to-cart').click(() => {
$.post('/cart/add', {itemId: 123}, html => {
$('#cart-sidebar').html(html); // 後端回傳完整側邊欄 HTML
});
});
// Client/SOA (React + Redux + API)
dispatch(addToCart(123)); // 1. 樂觀更新本地 Store
api.post('/cart', {itemId: 123}) // 2. 非同步同步後端
.catch(() => dispatch(removeFromCart(123))); // 3. 失敗回滾
// UI 訂閱 Store 變化自動重渲染
差異本質:前者「詢問後端長什麼樣」,後者「告訴後端發生什麼事,自己決定長什麼樣」。
需要 SEO / 內容導向 / 團隊缺前端專才 ──► HTML 增強 / SSR (Next.js, Nuxt)
│
▼
高互動 / 即時 / 離線 / 微前端 / 前端專才充足 ──► Client/SOA (React/Vue/Svelte + API)
│
▼
兩者兼顧 / 漸進遷移 ──► 混合架構 (SSR 入口 + CSR 應用島)
「HTML 增強」與「Client/SOA」非對立,而是架構光譜兩端。現代 Web 發展趨勢是混合與融合:以業務價值為導向,內容頁 SSR、應用頁 CSR、API 統一、體驗優先。技術選型應服務於團隊能力、產品階段、用戶場景,而非教條主義。