在開發 Java JSP 商城項目時,主頁列出所有商品。用戶搜索商品後,在結果頁面點擊「按價格升序排序」,後台該如何實現?開發者嘗試將包含商品 ID、圖片等屬性的 List 對象傳回後台,但接收到的是字符串,無法直接使用;若只傳商品 ID,又面臨 ID 眾多、類別不一、傳遞困難的問題。
如果只是對當前頁面已加載的數據進行排序,完全不需要發請求到服務器端。可以直接使用 jQuery 等前端庫在瀏覽器中完成排序,響應速度快、減輕服務器壓力。相關實現可參考經典博客教程(作者 Leixiaohua1020,已故,緬懷)。
若業務要求嚴格的數據一致性、涉及分頁或數據量極大,應將「查詢條件」和「排序方式」作為參數傳回服務器,由後台重新執行帶 ORDER BY price ASC 的 SQL 查詢,再返回新的列表數據。切勿嘗試將整個 List 對象在前後端傳遞。
dataTables.js、原生 Array.sort())。sortField、sortOrder 參數,動態拼接 SQL 或使用 ORM 排序。?sort=price&order=asc),避免傳遞複雜對象。總結:根據業務數據量和實時性要求選擇方案,切勿過度設計。