2010-03-13 24 views

回答

5

是的,它會影響到網站的性能,straight from MSDN

視圖狀態MAC是隱藏變量的加密版本,一個頁面的視圖狀態持續時,發送到瀏覽器。如果爲真,則檢查加密的視圖狀態以驗證它在客戶端上沒有被篡改。不要設置EnableViewStateMactrue如果性能是一個關鍵考慮因素。

檢查必須做東西,而且有東西比沒有東西更昂貴。您處理的視圖狀態越大,這會對您的請求造成更多的開銷。這就是說,除非你真的是真的高流量的網站或有真的在你的網頁的大視圖狀態,你可能不會注意到一個事情服務器端。然而,在客戶端,他們會得到一個更大的頁面,這可能比任何事情都有更多的影響。這意味着他們上傳更多的服務器上回發...這很可能是你的痛苦點由此啓用。

請記住,當服務器執行一個頁面時會發生多少事情,所有這些選項在大多數個案例中都是「放在桶中」的情況下,當然也有例外。當前的服務器足夠強大,像這樣的設置通常不會單獨產生任何明顯的影響,但當然也存在這樣的情況,例如,由於某種原因,如果您有兆字節的視圖狀態。

+6

該鏈接現在說:「在生產Web站點中,此屬性不應設置爲false」。 – 2010-11-10 22:06:43

3

enableviewstatemac屬性用於指定在收到每個客戶端請求時執行檢查以確保客戶端未篡改他們所服務的控制/隱藏數據。

這很重要,因爲.Net使用無狀態機制,並依賴於發生在客戶端上的變化作爲指令返回,以確定發生了哪些更改/事件。如果客戶能夠肆意篡改這些行爲,那麼他們可能會根據自己的意願改變頁面行爲。

相關問題