AJAX 本質是「發起請求 -> 獲取數據 -> 更新 DOM」。一次請求完全可以更新任意多個 DOM 節點,關鍵在於服務端返回的數據結構包含多個區域所需內容,前端解析後分發到對應位置。
後端 (Java/PHP/Node.js 等):
// 返回示例
{
"userInfo": "<div>用戶名: 張三 <span class='vip'>VIP</span></div>",
"cartCount": "5",
"notifyList": "<ul><li>新消息1</li><li>新消息2</li></ul>"
}
前端 (jQuery):
$.post('/api/refresh', {userId: 123}, function(res) {
// 直接更新多個區域
$('#user-info-container').html(res.userInfo);
$('#cart-badge').text(res.cartCount);
$('#notify-dropdown').html(res.notifyList);
}, 'json');
約定返回字符串中用特殊分隔符分割,或約定順序。
// Controller
public ActionResult RefreshParts() {
return Json(new {
Part1 = RenderPartialViewToString("_UserInfo", model),
Part2 = RenderPartialViewToString("_CartSummary", model),
Part3 = RenderPartialViewToString("_NotifyList", model)
}, JsonRequestBehavior.AllowGet);
}
「不知道只能刷新一個區域是啥意思」—— 原提問者可能誤以為 `$.ajax` 回調只能操作一個元素。實際上回調裡的 `this`/`$` 可任意選擇多個選擇器操作 DOM。