發布: 2008-4-09 11:02 |
作者: ASP.NET 2.0 Ajax |
來源:
希賽網 |
查看: 118次 | 進入軟件測試論壇討論
領測軟件測試網
從圖0-2中可以看到,在使用UpdatePanel實現的Ajax數據表格頁面中,客戶端的功能豐富了一點,即多了一個用來管理頁面局部更新的JavaScript組件。而對于服務器端,則基本和傳統的ASP.NET編程模型沒有什么區別,依然是先根據客戶端的請求計算并取得相應的數據,但在頁面呈現時,ASP.NET AJAX將只呈現UpdatePanel中的內容,并將這部分內容發送給服務器。
在我們的數據表格場景中,若用戶點擊了數據表格上的“下一頁”按鈕,則客戶端將同樣僅僅把“下一頁”這個信息通知給服務器,不過這種通知是采用XMLHttpRequest對象以“柔和”的異步方式進行的。然后,服務器如同普通ASP.NET頁面一樣,根據當前的上下文(當前的頁碼)計算出下一頁數據在整個數據集合中的位置,并從數據庫中得到這一段數據,隨后使用數據網格控件(GridView或DataGrid)將其填充到一個HTML
標簽中。但在最后的頁面呈現環節中,服務器將不再重新生成頁面中頁眉、頁腳、導航欄、菜單等其他內容,而是只生成UpdatePanel中的那個以及其中的內容,并將該發送回客戶端。當這個HTML片段返回到客戶端之后,客戶端的局部更新管理器將用其替換頁面上原有的那個,這樣就實現了數據表格的翻頁功能。
ASP.NET AJAX客戶端編程模型
我們同樣可以使用ASP.NET AJAX的客戶端編程模型來實現上述需求,這也正是本卷中將要重點介紹的內容。這時的客戶端模型和服務器端模型將如圖0-3所示。

圖0-3 ASP.NET AJAX客戶端編程模型
從圖0-3中可以看到,在完全使用ASP.NET AJAX客戶端編程模型的頁面中,客戶端承擔了非常重要的職責,負責將用戶的操作轉化為對服務器端的請求,并用指定的樣式呈現出服務器端返回的數據(圖0 -1和圖0-2中的數據網格控件已經從服務器端移到了客戶端)。而服務器端的職責則明顯少了——只為客戶端提供數據,不包含任何數據的表現樣式。
關于ASP.NET AJAX客戶端數據網格等數據綁定控件,將在第8章中介紹。
在我們的數據表格場景中,若用戶點擊了數據表格上的“下一頁”按鈕,則ASP.NET AJAX將在客戶端根據當前數據表格的狀態(當前頁數、每頁條目數等)計算出接下來要顯示的內容范圍在數據集合中的位置,并將這個位置信息發送給服務器,而不是像前面兩種模型那樣只發送“下一頁”命令。服務器端Web Service接收到這個內容范圍之后,可以很容易地根據該信息從數據庫中取得到所需的數據,并直接將這個數據(可能是Array,或是更加強大的 DataTable)發送回客戶端,而并不需要發送一個填充了這些數據的HTML。在客戶端ASP.NET AJAX框架得到服務器端的響應之后,將會使用位于客戶端的數據網格控件把這一段數據按照一定的樣式進行格式化,并顯示到頁面中。
文章來源于領測軟件測試網 http://www.kjueaiud.com/