为什么速度这么慢?多做一次加载有这么困难么?
源代码是这样的
protected override void OnLoad(EventArgs e)
{
Multiple = 0;
String Prefixes = ConfigurationManager.AppSettings["Devin.Framework:TablePrefixes"];//获取表名前缀
//String Prefixes = "T_";
cate = DataConvert.GetString(Request["cate"]);
fileName = cate;
switch (cate)
{
case "news":
pageTitle = "新闻";
tableName = Prefixes + "NewsCategory";
fileName = String.Format("/xml/news{0}.xml", Multiple);
break;
case "products":
pageTitle = "产品";
tableName = Prefixes + "Category";
fileName = String.Format("/xml/product{0}.xml", Multiple);
break;
}
}
--上面运行 之后,点一个提交按钮, 加载两次,(本地速度1秒不到), 但放到外网就1到5分钟
---------------------
protected override void OnLoad(EventArgs e)
{
if (!Page.IsPostBack)
{
Multiple = 0;
String Prefixes = ConfigurationManager.AppSettings["Devin.Framework:TablePrefixes"];//获取表名前缀
//String Prefixes = "T_";
cate = DataConvert.GetString(Request["cate"]);
fileName = cate;
switch (cate)
{
case "news":
pageTitle = "新闻";
tableName = Prefixes + "NewsCategory";
fileName = String.Format("/xml/news{0}.xml", Multiple);
break;
case "products":
pageTitle = "产品";
tableName = Prefixes + "Category";
fileName = String.Format("/xml/product{0}.xml", Multiple);
break;
}}
---放到if(!Page.IsPostBack)里之后 1秒钟不到就做完提交操作
求解释 --------------------编程问答--------------------
String Prefixes = ConfigurationManager.AppSettings["Devin.Framework:TablePrefixes"];
//获取表名前缀
它二次加载的时候, webconfig类被第二次加载, 但反映的之慢, 也太超乎我的想象了 --------------------编程问答-------------------- 点击按钮就是Postback,第二种 if (!Page.IsPostBack)返回false,后面代码都不执行了,当然快了。 --------------------编程问答-------------------- 从上面的代码,完全看不出哪有非常耗时的操作,就重复算执行百遍,也不可能超过1分钟。 --------------------编程问答--------------------
对啊, 我就想不明白, 还有什么其他原因么 --------------------编程问答-------------------- if (!Page.IsPostBack)
仅在页面首次加载的时候执行,也就是不是回发的状态下 --------------------编程问答-------------------- 我估计是网络的问题 --------------------编程问答--------------------
这个不清楚, 我打开一个网站 ,都还蛮快的 --------------------编程问答-------------------- 是不是这样子的 ,首先页面加载 运行一次(很快),从服务器加载webconfig类。
其次 点 提交又运行一次 。再从服务器加载webconfig类 ,然后数据提交 给服务器。
这有什么问题么 --------------------编程问答--------------------
哦 ,好像是这样子的 , 回发好慢 , 请求很快 --------------------编程问答-------------------- 加了if (!Page.IsPostBack)的判断后,点击控件,条件里面的代码其实没有运行,所以很快
Multiple = 0;
String Prefixes = ConfigurationManager.AppSettings["Devin.Framework:TablePrefixes"];//获取表名前缀
//String Prefixes = "T_";
cate = DataConvert.GetString(Request["cate"]);
fileName = cate;
switch (cate)
{
case "news":
pageTitle = "新闻";
tableName = Prefixes + "NewsCategory";
fileName = String.Format("/xml/news{0}.xml", Multiple);
break;
case "products":
pageTitle = "产品";
tableName = Prefixes + "Category";
fileName = String.Format("/xml/product{0}.xml", Multiple);
break;
}
LZ实在找不出来的话可以再这段代码里面放几个timespan来显示 相应的代码运行了多久,然后在检查试试
补充:.NET技术 , ASP.NET