ASP.NET4.0新改進和新特性
使用ViewStateMode屬性控制View State - 性能的增強
在ASP.NET Webform里最為人所詬病的毛病之一就是不斷增多的viewstate影響到性能。盡管之前就可以把EnableViewState屬性設為true或false ,之后,所以有的controls都默認繼承,并且即使你在control層把它設為啟用,也還是會產生不一致的行為。
在ASP.NET 4.0中 , ViewStateMode屬性有助于確定每個control的Viewstate是否應啟用,禁用或被繼承。例如:
<ASP:Panel ID="pnlViewState" runat="server" ViewStateMode="Disabled">
Disabled: <asp:Label ID="label1" runat="server" Text="Value set in markup"ViewStateMode="Inherit" /><br />
Enabled: <asp:Label ID="label2" runat="server" Text="Value set in markup"ViewStateMode="Enabled" />
<hr />
<asp:button ID="Button1" runat="server" Text="Postback" />
</asp:Panel>
后端代碼
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
label1.Text = "Value set in code behind";
label2.Text = "Value set in code behind";
}
}
運行這個頁面,你會發現兩個標簽的初值都被設為了"Value set in code behind",而點擊按鈕(postback)后,label1的值變成了“Value set in markup” ,label2的值則保持不變。正如你所看到的那樣,保存這兩個標簽的面板把ViewStateMode設置為禁用,label1繼承了這一設置(如果沒有指定的話這是默認值),label2則設為了啟用。這就是為什么label2保持了viewstate而label1丟失了。
雖然可以說之前就可以使用簡便的EnableViewState屬性,但一直就不穩定。想想我們在大多數性能討論會(performance session)上,都會說如果viewstate不能正常運作就先禁用它然后再在control層設為啟動,這個ViewStateMode的引入可以說是有助提升性能的一個很好的結構性變動(architectural change)。
網頁的Meta Keyword和Deion - 搜索引擎優化功能
在Visual Studio 2008中,可以通過直接聲明或在程序中使用Page.Title設置網頁的標題。隨著越來越多的流量通過搜索引擎,網頁的標題,關鍵字和描述變得更為重要了。雖然由于關鍵字被人濫用導致許多搜索引擎已經對此忽略不計,但是,頁面的描述還是Google,Bing這些主流搜索引擎賴以鑒別和索引網頁內容的依據。
ASP.NET中的新功能4.0允許用戶像下面這樣通過編程的方式設置頁面描述和關鍵詞: -
protected void Page_Load(object sender, EventArgs e)
{
this.Page.Title = "My ASP.NET Blog";
this.Page.MetaKeywords = "ASP.NET, Web Development, Blog, ASP.NET Blog";
this.Page.MetaDeion = "This Blog contains posts related to ASP.NET and Web Development";
}
以上代碼會產生如下標記:
<meta name="keywords" content="ASP.NET, Web Development, Blog, ASP.NET Blog" />
<meta name="deion" content="This Blog contains posts related to ASP.NET and Web Development" />
它的運作機制是,如果meta標簽已經出現在HTML標簽里,那么只要name屬性相同,程序中設定的內容就都會被填寫到content里。
雖然這看起來很簡單,但是在要根據某些條件或標準來動態設置它們的情況下,這就很有用了。目前,這些內容都是在HTML代碼里靜態地設定的,F在,有了Page類這一級的訪問,它們就可以動態地設置了。
關鍵字:ASP.NET、新特性、程序
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解