本人才学asp。net没多久?
往大侠们指点一下,
就是按照高人说的3层构架,
编了一个网站,www.020job.com
我用了200多个存储过程,分页也是指搜索出当前页要的数据。但是在性能上有什么好的建议,除了服务器上的硬件条件。
除了什么(!IsPostBack)
还有呢?望大家讨论一下!我看看网站比如www.hzrc.com在什么时候都很快,是怎么实现的。高手多发发言!
指点一下。

解决方案 »

  1.   

    缓存是ASP.NET最大的性能优势!!
      

  2.   

    这是我在Microsoft中找到的尽可能缓存数据和输出:ASP.NET 编程模型提供了一个简单的机制,在不需要为每个请求动态计算页输出或数据时缓存它们。在设计页时可以考虑用缓存来优化应用程序中那些预期有最大通信量的地方。适当地使用缓存可增强站点的性能,有时甚至可以增大一个数量级或更多,这是 .NET 框架的任何其他功能无法企及的。有关如何使用缓存的更多信息,请参阅本教程的缓存服务一节。但是怎么用呢比如我的首页 数据访问量比较打
    我怎么改?
    MyZhiming.DataSource = Qiying.WebModules.Accounts.Business.User.GetIndexZhimingTop().Tables[0].DefaultView;
    MyZhiming.DataBind();
    MyNewNews.DataSource = Qiying.WebModules.Accounts.Business.User.GetIndexNewsTop().Tables[0].DefaultView;
    MyNewNews.DataBind();MyDataJob.DataSource =  Qiying.WebModules.Person.Business.Meng.GetComTop().Tables[0].DefaultView;
    MyDataJob.DataBind();MyDataPerson.DataSource =  Qiying.WebModules.Enterprise.Business.Meng.GetPersonTop().Tables[0].DefaultView;
    MyDataPerson.DataBind();这是我首页邦定的数据,
    我应怎么优化?
    怎么用缓存优化?我的aspx
    中用不用改?
    <%@ Page language="c#" Codebehind="index.aspx.cs" AutoEventWireup="false" Inherits="Qiying.Job.Web.Index" %>
      

  3.   

    void Page_Load(Object Src, EventArgs E ) {      if(!IsPostBack) {
            LoadData();
          }
        } void LoadData() {      DataView Source = (DataView)Cache["MyData"];      if(Source == null) {        // read the data from the XML source
            DataSet ds = new DataSet();        FileStream fs = new FileStream(Server.MapPath("authors.xml"), FileMode.Open,FileAccess.Read);
            StreamReader reader = new StreamReader(fs);
            ds.ReadXml(reader);
            fs.Close();        Source = new DataView(ds.Tables[0]);        // cache it for future use
            Cache.Insert("MyData", Source, new CacheDependency(Server.MapPath("authors.xml")));        // we created the data explicitly, so advertise that fact
            CacheMsg.Text = "显式创建的数据集";
          }
      

  4.   

    <%@ OutputCache Duration="60" VaryByParam="none" %>
      

  5.   

    尤其是多用页面片断式缓存,把网页常用部分分解,然后都做成.ascx控件,在这其中使用缓存,就像以前ASP中的Include
      

  6.   

    private DataView GetIndexPerson()
    {
       DataView Source = (DataView)Cache["IndexPerson"];   if(Source==null)
        {
          Source  = new DataView(Meng.GetPersonTop().Tables[0]);Cache.Insert("IndexPerson",Source , null,DateTime.Now.AddMinutes(1), TimeSpan.Zero);
         }  
     
         return Source;}private DataView GetIndexZhiming()
     {
        DataView Source = (DataView)Cache["IndexZhiming"];
         if(Source==null)
          {
            Source  = new DataView(Business.User.GetIndexZhimingTop().Tables[0]);Cache.Insert("IndexZhiming",Source , null,DateTime.Now.AddMinutes(1), TimeSpan.Zero);
           }  
     
       return Source;
    }private DataView GetIndexCom()
    {
        DataView Source = (DataView)Cache["IndexCom"];    if(Source==null)
         {
           Source  = new DataView(Business.Meng.GetComTop().Tables[0]);Cache.Insert("IndexCom", Source, null,DateTime.Now.AddMinutes(1), TimeSpan.Zero);
          }  
     
        return Source;
    }
    private DataView GetIndexNews()
    {
        DataView Source = (DataView)Cache["IndexNews"];    if(Source==null)
         {
            Source  = new DataView(Business.User.GetIndexNewsTop().Tables[0]);Cache.Insert("IndexNews", Source, null,DateTime.Now.AddMinutes(1), TimeSpan.Zero);
         }  
     
       return Source;
    }我这样在。cs文件中调用是不是就行了
    private void BindList()
    {
    MyZhiming.DataSource = GetIndexZhiming();
    MyZhiming.DataBind(); MyNewNews.DataSource = GetIndexNews();
    MyNewNews.DataBind(); MyDataJob.DataSource =  GetIndexCom();
             MyDataJob.DataBind(); MyDataPerson.DataSource =  GetIndexPerson();
    MyDataPerson.DataBind();
    }---------------------------------
    大家看看,我这样行不?
      

  7.   

    大家看看,我这样的一个页面的多次用Cache行不行
      

  8.   

    避免过多的服务器控件视图状态:自动状态管理是一种功能,它使服务器控件能够在往返行程中重新填充它们的值,而不要求编写任何代码。但是,此功能并不能任意使用,因为控件状态是在隐藏的窗体字段中传入和传出服务器的。应当明白 ViewState 何时有帮助,何时没有。例如,如果在每个往返行程中将控件绑定到数据(如第四条提示中的数据网格示例所示),则不要求控件维护它的视图状态,因为无论如何都将擦除任何重新填充的数据。 
    <%@ Page EnableViewState="false" %>还就是这个到底有什么用?
    他到底禁止了什么??