最近學習了WebCast中的資料分頁技術,現把相關知識點歸納如下,便於以後總結複習:
一、 資料分頁概述:
1.通常在Web頁面,在顯示資料量比較大時,無法在一個頁面上顯示所有的資料。
2.在某些特定情境下,並不需要返回所有滿足條件的資料。
3.從資料的角度看,需要返回指定範圍內的資料。
二、分頁技術
1.資料層技術:
在資料庫查詢時,只查詢特定頁面的資料
主要由T-SQL來完成
適用於比較大的資料表
優點:返回的結果集小,查詢速度快
缺點:需要多次查詢資料庫
1.1 使用暫存資料表
在查詢資料前,建立一個暫存資料表
表的列比要返回的結果多一個識別欄位
按照特定列排序,將結果插入到暫存資料表中
此時,可以按照識別欄位返回特定頁面
1.2 使用表變數
在查詢資料前,建立一個表變數
表的列比要返回的結果集多一個識別欄位
按照特定列排序,將結果插入到表變數中
此時,可以按照識別欄位返回特定頁面
1.3 反覆Top
若要按特定列正排序取第21-30行資料.
首先,按特定列正排序取Top 30
然後,反向排序取 Top 10
最後,再將結果正排序後返回
1.4 使用行號
在SQL Server 2005/2008中,查詢結果集中,添加一個ROW_Number()表示行號
將上述結果集作為子查詢,通過Row_Number()篩選出特定頁面。
2.應用程式層分頁
在應用程式層/邏輯層快取資料,並進行資料的分段顯示
主要由程式碼完成
優點:查詢資料庫次數少,每次返回的結果快
缺點:第一次查詢慢,佔用應用程式層記憶體資源
2.1 GridView+DataSource
2.2 DataPage+ListView
3.3 Linq中的Skip和Take方法
3.展示層分頁
在用戶端進行資料分頁
主要通過用戶端指令碼來實現
優點:減少網路傳輸量,提高頻寬利用率
缺點:需要編寫大量的用戶端指令碼,增加開發與維護成本
3.1 UpdatePanel
通過Asp.net Ajax中的UpdatePanel控制項,可以將應用程式層所提供的分頁功能轉換到用戶端
無需維護代碼,充分利用伺服器端控制項的功能。
3.2 Data Services (.net Framework 3.5)
使用Data Services所提供的基於URI的資料訪問,可以實現資料分頁。
在展示層,可以直接通過Javascript進行解析
輕量級資料轉送格式:XML/JSON
Best Regards,
Charles Chen
email: gotosunny@msn.com