select
@RestController
@RequestMapping("/ajax")
public class AjaxController {
@Autowired private ClassService classService;
// 1. 首頁加載:返回所有班級
@GetMapping("/index")
public String index(Model model) {
List
<%@ page contentType="text/html;charset=UTF-8" %>
二級聯動演示
班級-學生二級聯動
| 環節 | 說明 |
|---|---|
| 首屏數據 | 班級列表由後端模板引擎直接渲染,減少一次 Ajax 請求,提升首屏速度。 |
| Ajax 觸發 | change 事件監聽班級選擇變化。 |
| 參數傳遞 | data: { className: className } 自動拼接為 ?className=xxx。 |
| JSON 解析 | jQuery 自動將響應 Content-Type: application/json 解析為 JS 物件陣列。 |
| DOM 更新 | empty() 清空 → append() 追加選項 → prop('disabled', false) 啟用。 |
| 錯誤處理 | 統一重置學生下拉框,避免殘留舊數據誤導用戶。 |
_.debounce 或手動標誌位防止併發請求競態。Map 快取已加載班級,二次選擇無需請求。@CrossOrigin 或 Nginx 反向代理。「首屏渲染 + 交互 Ajax」是經典聯動下拉的最佳實踐:兼顧 SEO/首屏性能與動態交互體驗。掌握 jQuery $.ajax 參數、回調、DOM 操作流程,即可輕鬆實現多級聯動、搜索建議等豐富交互。