我做了一个页面,每次打开时都要好长时间,下面是一些代码:
 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);就是说在这里生成前台的显示内容,请问怎么样能提高页面的打开速度呢

解决方案 »

  1.   

    你可以StringBuilder,不是+=拼接
      

  2.   

    页面缓存outputcache  或生产静态页面
      

  3.   

    能说的详细点吗 怎么用outputcache 我没用过 如何生成静态页面
      

  4.   

    你可以StringBuilder,不是+=拼接这个是个好方法
      

  5.   


    StringBuilder比+=拼接快得多。
      

  6.   

    String 在初始化的时候就分配好了固定存储空间,如果出现改变,只能重新分配
    StringBuild在初始化的时候再分配过程中还提供了一段缓存,所以如果你的字符串是变量,使用StringBuild更有效率
      

  7.   

    int count=UserManager.getFloorsAll(0).Count;
    for (int i = 0; i < count; i++)
    拼接用 StringBuilder 循环最好用 foreach
      

  8.   

    UserManager.getFloorsAll(0)
    这个取出来的是什么值
      

  9.   

    我觉得在asp.net里依然像asp一样用字符串拼接本身就不对吧lz用repeater控件吧
      

  10.   

    <%@ OutputCache Duration="60" VaryByParam="*" %> 
    放在页面前面
      

  11.   

    而且这个不应该这么写.Count,这样如果有多个循环,每次都要执行一遍查询
    应该是用
    IEnumerable floors = UserManager.getFloorsAll(0);
    然后foreach floors;