1.4 ASP.NET 页面输出缓存
有的时候在web站点中,有些页面在很长一段时间内都不会发生变化,例如一个招聘网站,它对于工资的描述文字一般不会经常更改,一般都是一个月更改一次,所以在这一个月内,用户看到的内容都是一样的,所有如果把数据缓存在服务器端并不是完美的解决方案。这里可以用页面输出缓存。
下面是示例代码:
<%@OutputCache Duration="60" VaryByParam="empNum" Location="Server"%> |
2、客户端缓存:
在上面的文章中,我讨论了些数据缓存在服务器端的方法,然而有的时候我们为了提高性能我们要把有些数据缓存到客户端。利用这种机制来达到缓解服务器压力,不过在客户端缓存数据会有各种不同的安全性问题,下面我说简要的说下相关内容:
2.1 Cookies:cookies在WEB程序开发中应用的非常广泛,它可以非常方便的在客户端与服务器端相互访问,不过它有数据大小限制,最大为4K,所有用它经常是保存小数据。同时cookie对于失效的控制也支持的相当完美。
下面是示例代码:
if (this.Request.Cookies["MY_NAME"] == null) { this.Response.Cookies.Add(new HttpCookie("MY_NAME", "Shubhabrata Mohanty")); } else { this.Response.Write(this.Request.Cookies["MY_NAME"].Value); } |
2.2 ViewState:ViewState是一个全新的概念,它一般用于页面或者是控件中保留数据以供和服务端交通。在ASP中的,我们存储数据是用隐藏控件来完成(Hidden fields),ViewState也是这样用的,只不过它比隐藏控件更加安全性,所有的值都是经过hash处理的。如果你查看页面源代码,你都会看到ViewState的存在,一般ViewState不用来保存大的数据。
下面是示例代码:
protected void Page_Load(object sender, EventArgs e) { if (this.ViewState["MY_NAME"] == null) { this.ViewState["MY_NAME"] = "Shubhabrata Mohanty"; } //txtName is a TextBox control this.txtName.Text = this.ViewState["MY_NAME"].ToString(); } |
2.3 隐藏控件 Hidden fields:它是最简单的,不用多说
下面是示例代码:
<!--In ASP.NET--> <asp:HiddenField ID="myHiddenField" Value="Shubhabrata" runat="server" /> <!--In HTML--> <input id="myHiddenField" type="hidden" value="Shubhabrata" /> |