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

2021-03-31 08:56:31 字數 1256 閱讀 6366

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

通常,只有在檢索或儲存資料時,您才需要啟動到伺服器的往返過程。多數資料操作可在這些往返過程間的客戶端上進行。例如,從 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 ***mand here.

if not (page.ispostback)

dim query as string = "select * from authors where firstname like '%justin%'"

my***mand.fill(ds, "authors")

mydatagrid.databind()

end if

end sub

[c#]

void page_load(object sender, eventargs e)

}

由於每次請求時都執行 page_load 事件,上述**檢查 ispostback 屬性是否設定為 false。如果是,則執行**。如果該屬性設定為 true,則不執行**。

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

避免不必要的float

float中文翻譯為浮動,很形象的翻譯,在css很常用,當你需要吧兩個塊級元素定排放在同一高度上經常會用到float,先看一下float的 屬性。先看一下float可能的值 float left 元素向左浮動 float right 元素向右浮動 float none 不浮動 float inher...

避免不必要的物件

一般來說,最好能重用物件而不是在每次需要的時候就建立乙個相同功能的新物件。重用方式既快速,又流行。如果物件是不可變的,它就始終可以被重用。最為乙個極端的反面例子,考慮下面的語句 string s new string string don t do this 該語句每次被執行的時候都建立乙個新的st...

避免建立不必要的物件

下面是乙個比較微妙也比較常見的反面的例子,其中涉及可變的date物件,他們的值一旦計算出來之後就不再變化。這個類建立了乙個模型 其中有乙個人,並有乙個isbabyboomer方法,用來檢驗這個人是否為乙個babyboomer,換句話說,就是檢驗這個人是否出生於1946年至1964年之間。public...