页面运行速度问题

zhaozhixiao 2010-09-09 08:50:06
我做了一个页面,每次打开时都要好长时间,下面是一些代码:
for (int i = 0; i < UserManager.getFloorsAll(0).Count; i++)
{

flr = UserManager.getFloorsAll(0)[i];

//人数循环

html = "<table width='100%'><tr><td align=center><table><tr>";
for (int j = 0; j < Convert.ToInt32(Math.Pow(2, i)); j++)
{

html += "<td align=center><table style='background-image: url(../image/newlogin_06.gif); background-color: transparent;width: 50px; height: 30px'><tr><td align=center>";

html += "<a href='Graph1.aspx?userno=" + y + "&floor=" + i + "'>" + y + "</a>";

html += "</td></tr><tr><td align=center>";
name = UserManager.getNameByNoFty(y, 0);
//html += "<input id='Text"+y+"' type='text' runat='server' />";
if (name == "")
{
html += "<a href='AddUser.aspx?userno=" + y + "&floor=" + i + "'>注册</a>";
}
else
{
html += name;
}
html += "</td></tr></table></td>";

y = y + 1;
}

html += "</tr></table></td></tr></table>";
li.Add(html);

就是说在这里生成前台的显示内容,请问怎么样能提高页面的打开速度呢
...全文
154 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
边城的刀声 2010-09-09
  • 打赏
  • 举报
回复
而且这个不应该这么写.Count,这样如果有多个循环,每次都要执行一遍查询
应该是用
IEnumerable floors = UserManager.getFloorsAll(0);
然后foreach floors;


边城的刀声 2010-09-09
  • 打赏
  • 举报
回复
很明显是线上的数据表没有加索引
gaven2060 2010-09-09
  • 打赏
  • 举报
回复
<%@ OutputCache Duration="60" VaryByParam="*" %>
放在页面前面
ltcszk 2010-09-09
  • 打赏
  • 举报
回复
我觉得在asp.net里依然像asp一样用字符串拼接本身就不对吧

lz用repeater控件吧
kkbac 2010-09-09
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 zhaozhixiao 的回复:]

是数据库中的用户过多造成的 上面写的拼接和循环都用了 还是不行 现在数据库中数据至少有10几万了
[/Quote]
优化sql语句看看先了,
ltcszk 2010-09-09
  • 打赏
  • 举报
回复
UserManager.getFloorsAll(0)
这个取出来的是什么值
ltcszk 2010-09-09
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 sh_suyuelin 的回复:]
int count=UserManager.getFloorsAll(0).Count;
for (int i = 0; i < count; i++)


拼接用 StringBuilder

循环最好用 foreach
[/Quote]

foreach对速度也有影响吗
zhaozhixiao 2010-09-09
  • 打赏
  • 举报
回复
是数据库中的用户过多造成的 上面写的拼接和循环都用了 还是不行 现在数据库中数据至少有10几万了
kkbac 2010-09-09
  • 打赏
  • 举报
回复
把页面输出的时间列出来,对比下. 看看是哪里出了问题.
myhope88 2010-09-09
  • 打赏
  • 举报
回复
你数据量是不是很大啊,按道理应该不会慢才是啊
sh_suyuelin 2010-09-09
  • 打赏
  • 举报
回复


int count=UserManager.getFloorsAll(0).Count;
for (int i = 0; i < count; i++)


拼接用 StringBuilder

循环最好用 foreach
yao991118 2010-09-09
  • 打赏
  • 举报
回复
是否以数据库有关系,如果是,最好优化下查询语句
gudengdulang 2010-09-09
  • 打赏
  • 举报
回复
学习!!
zhaozhixiao 2010-09-09
  • 打赏
  • 举报
回复
解决不了啊 mark是什么意思啊 美女
zhaozhixiao 2010-09-09
  • 打赏
  • 举报
回复
我试了下 速度还是慢的可怜 还有别的方法吗
shulin85 2010-09-09
  • 打赏
  • 举报
回复
String 在初始化的时候就分配好了固定存储空间,如果出现改变,只能重新分配
StringBuild在初始化的时候再分配过程中还提供了一段缓存,所以如果你的字符串是变量,使用StringBuild更有效率
shadow841112 2010-09-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zhaozhixiao 的回复:]
两个的速度影响大吗
[/Quote]

StringBuilder比+=拼接快得多。
lovekewen 2010-09-09
  • 打赏
  • 举报
回复
学习ing
zhouing00 2010-09-09
  • 打赏
  • 举报
回复
你可以StringBuilder,不是+=拼接

这个是个好方法
zhaozhixiao 2010-09-09
  • 打赏
  • 举报
回复
能说的详细点吗 怎么用outputcache 我没用过 如何生成静态页面
加载更多回复(4)

62,272

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧