天天看點

避免到伺服器的不必要的往返過程

雖然您很可能希望盡量多地使用 Web 窗體頁架構的那些節省時間和代碼的功能,但在某些情況下卻不宜使用 ASP.NET 伺服器控件和回發事件處理。

通常,隻有在檢索或存儲資料時,您才需要啟動到伺服器的往返過程。多數資料操作可在這些往返過程間的用戶端上進行。例如,從 HTML 窗體驗證使用者輸入經常可在資料送出到伺服器之前在用戶端進行。通常,如果不需要将資訊傳遞到伺服器以将其存儲在資料庫中,那麼您不應該編寫導緻往返過程的代碼。

  如果您開發自定義伺服器控件,請考慮讓它們為支援 ECMAScript 的浏覽器呈現用戶端代碼。通過以這種方式使用伺服器控件,您可以顯著地減少資訊被不必要的發送到 Web 伺服器的次數。

使用 Page.IsPostBack 避免對往返過程執行不必要的處理

如果您編寫處理伺服器控件回發處理的代碼,有時可能需要在首次請求頁時執行其他代碼,而不是當使用者發送包含在該頁中的 HTML 窗體時執行的代碼。根據該頁是否是響應伺服器控件事件生成的,使用 Page.IsPostBack 屬性有條件地執行代碼。例如,下面的代碼示範如何建立資料庫連接配接和指令,該指令在首次請求該頁時将資料綁定到 DataGrid 伺服器控件。

[Visual Basic]

Sub Page_Load(sender As Object, e As EventArgs)

' Set up a connection and command here.

If Not (Page.IsPostBack)

Dim query As String = "select * from Authors where FirstName like '%JUSTIN%'"

myCommand.Fill(ds, "Authors")

myDataGrid.DataBind()

End If

End Sub