当前位置: 代码迷 >> ASP.NET >> 页面中有多个Repeater控件,后台分别Repeater.DataSource=XXX,怎样提高访问速度?解决方案
  详细解决方案

页面中有多个Repeater控件,后台分别Repeater.DataSource=XXX,怎样提高访问速度?解决方案

热度:2277   发布时间:2013-02-25 00:00:00.0
页面中有多个Repeater控件,后台分别Repeater.DataSource=XXX,怎样提高访问速度?
前台的 aspx 中有多个 Repeater 控件,
后台 的CS 文件中分别绑定。
如下,前台的 aspx 代码:
C# code
           <ul>                <asp:Repeater ID="Repeater2" runat="server">                <ItemTemplate>                <li>                  <span class="s1"><a href='DetailInf.aspx?NewsId=<%# Eval("NewsId") %>'>  <%#GetSrCount(Eval("Title").ToString())%> </a></span>                    <span class="s2"> <%# Eval("EditDate","{0:yyyy-MM-dd}")%> </span>                </li>                </ItemTemplate>                </asp:Repeater>           </ul>

后台的代码:
C# code
        Repeater11.DataSource = CMSNews.showShouYe(55); //调用类中的方法        Repeater11.DataBind();类中的方法:       public DataTable showShouYe(int str_classid)        {            DataSet ds = new DataSet();            string str_showsql = "select top 6 * from CMS_News where DeleteFlag = '0' and ClassId= " + str_classid + " order by EditDate desc";            Database db = DatabaseFactory.CreateDatabase("diaonianyuConnectionString");            DbCommand cmd = db.GetSqlStringCommand(str_showsql);            try            {                ds = db.ExecuteDataSet(cmd);            }            catch (Exception ex)            {                WebHelper.Alert("CMS_News.cs Error!");            }                   return ds.Tables[0];  // 返回 arraylist        }

这样写的代码,是不是 每一个 Repeater 都要从客记端到服务器,从客户端到服务器,
这样写是不是 影响访问速度,不知道怎样能提高访问速度。
非常感谢!

------解决方案--------------------------------------------------------
只要和数据库交互,肯定会存在数据交互时间的问题,如果非要这种方式,那么就要看你的查询语句是否足够优化,另外,Repeater 如果在客户端解析成了TABLE,整个界面也不是那么流畅,要等所有的数据加载完毕才会展现

真的要快,那就生成静态页面把
------解决方案--------------------------------------------------------
从你的代码来看,基本上是可以的。主要是数据库字段加索引、优化SQL语句。数据变化不频繁的话,可以适当用下缓存。
  相关解决方案