Page_Load 和 IsPostBack
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();
}
}
void Button_Click(Object sender, EventArgs e)
{
String query = "select * from Authors where FirstName like '%BRAD%'";
myCommand.Fill(ds, "Authors");
myDataGrid.DataBind();
}
2、关闭不必要的Session状态{
//


if (!Page.IsPostBack)
{
String query = "select * from Authors where FirstName like '%JUSTIN%'";
myCommand.Fill(ds, "Authors");
myDataGrid.DataBind();
}
}
void Button_Click(Object sender, EventArgs e)
{
String query = "select * from Authors where FirstName like '%BRAD%'";
myCommand.Fill(ds, "Authors");
myDataGrid.DataBind();
}
<%@ Page EnableSessionState="false" %>
3、注意使用Server Control,不必要时可以不使用Server Control
不必要时可以关闭ViewState
<asp:datagrid EnableViewState="false“ runat="server"/>
<%@ Page EnableViewState="false" %>
4、不要用Exception控制程序流程
try
{
result = 100 / num;
}
catch (Exception e)
{
result = 0;
}
if (num != 0)
result = 100 / num;
else
result = 0;
5、禁用VB和JScript动态数据类型{
result = 100 / num;
}
catch (Exception e)
{
result = 0;
}
if (num != 0)
result = 100 / num;
else
result = 0;
<%@ Page Language="VB" Strict="true" %>
6、使用存储过程数据访问
7、只读数据访问不要使用DataSet
使用SqlDataReader代替DataSet,SqlDataReader是read-only, forward-only
8、关闭ASP.NET的Debug模式
9、使用ASP.NET Output Cache缓冲数据
(1)ASP.NET输出缓冲
页面缓冲
<%@OutputCache%>
Duration
VaryByParam
片断缓冲
VaryByControl
(2)数据缓冲
过期依赖条件
Cache.Insert("MyData", Source, new CacheDependency(Server.MapPath("authors.xml")));
Cache.Insert("MyData", Source, null,DateTime.Now.AddHours(1), TimeSpan.Zero);
Cache.Insert("MyData", Source, null, DateTime.MaxValue,TimeSpan.FromMinutes(20));
Cache.Insert("MyData", Source, null,DateTime.Now.AddHours(1), TimeSpan.Zero);
Cache.Insert("MyData", Source, null, DateTime.MaxValue,TimeSpan.FromMinutes(20));