日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

避免到服务器的不必要的往返过程

發布時間:2023/11/27 生活经验 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 避免到服务器的不必要的往返过程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
雖然您很可能希望盡量多地使用 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

[C#]
void Page_Load(Object sender, EventArgs e) {
// Set up a connection and command here.
if (!Page.IsPostBack) {
String query = "select * from Authors where FirstName like '%JUSTIN%'";
myCommand.Fill(ds, "Authors");
myDataGrid.DataBind();
}
}

  由于每次請求時都執行 Page_Load 事件,上述代碼檢查 IsPostBack 屬性是否設置為 false。如果是,則執行代碼。如果該屬性設置為 true,則不執行代碼。

  注意 如果不運行這種檢查,回發頁的行為將不更改。Page_Load 事件的代碼在執行服務器控件事件之前執行,但只有服務器控件事件的結果才可能在輸出頁上呈現。如果不運行該檢查,仍將為 Page_Load 事件和該頁上的任何服務器控件事件執行處理。

總結

以上是生活随笔為你收集整理的避免到服务器的不必要的往返过程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。