一个新闻首页页面(a.aspx) 里面有许多datalist控件 同时有大量的sql语句在后台读取数据库数据 然后分别进行数据绑定 将查询的数据绑定至a.aspx的datalist中
现在想对其进行优化 希望服务器定时对该页面内的数据进行更新 每隔15分钟 然后将页面的静态页面的代码绑定至一个新的页面中(b.aspx) 也就是说 用户访问这个页面的时候 服务器只展示静态的页面 内部的各个链接都已经写好 只有到下一个15分钟时 才会自动刷新 而用户在这15分钟之内无论后台数据库是否有新数据添加 无论用户如何刷新 都显示的是相同的内容
不知这样的效果如何实现?求解答asp.net优化新闻

解决方案 »

  1.   

    先一起加载到一个DataTable,然后再从DataTable中去获取数据
      

  2.   

    这个就是上司的要求 他就是说要实现这样的效果 将页面变为静态的 每隔15分钟后台把这个页面更新一次 绑定上新的内容 但是我一直搞不懂这样的方法应该如何实现
    这样可以缓解很多压力,比如页面的生存周期,加载服务器控件的等等,你只需要写一个服务,过15分钟用读取好的内容替换那个显示页面即可那个页面上要有自己刷新的JS。。这样就可以了
    那就是说在a页面上设置定时更新的控件吧 那应该如何将a的内容读到b上来?
      

  3.   

    这个datatable是b页面的datatable么?
      

  4.   

    这个datatable是b页面的datatable么? cache 是所有用户公共的(应用程序缓存)
      

  5.   

    其实这种优化有很多方面和方式的。
    =======================
    优化方式A:采用静态页面生成技术:
    你可以在访问a.aspx 页面的时候,判断本地是否存在a.html文件,是判断文件上次保存日期是否超过15分钟,是则将a.aspx  Render的内容保存到a.html.
    最后导航到a.html文件。
    客户无论访问a.html或a.aspx页面,都有一个脚本类似这样:
    setTimeout(function(){
      location.href="a.aspx"
    },15*60*1000);
    【静态页面的优化,上面是没考虑你程序编码的优化】
    ========================
    优化方式B:采用缓存存储
    既然你页面数据可以保存15分钟,那么你可以在页面设置页面缓存时间15分钟,或在赋值datalist  的时候进行缓存。
    ====================
    优化方式C:页面代码整理优化
    尽量减少数据的多连接查询,比如你好几个datalist,如果可以一次性利用Connection 查询,就一次性查询出来(不会导致查询超时情况下)。
    看看你的datalist是否需要postback,不过我根据你说的都要静态了,应该是不需要回传,也就是把viewstate禁用掉
    【这种方式是配合上面两种进行深度优化。】
      

  6.   

    查询的时候用存储过程一次性查出来,给一个dataset
    然后缓存?保存15分钟应该就可以了。
    #8说的很细了,你可以试试看
      

  7.   


    你这种要求,在你的aspx写上简单的一个 @Cache 语句设置Duration就行了。谈不上需要什么“技术”,只要见过Asp.net就行。实际上,Duration是“底线”。真正的页面缓存(或者片段缓存)可以根据其它状态来自动刷新。例如当你设置Duration为10分钟,这10分钟之内,你可以再设置当数据库某个表被修改时重建页面缓存、当某个用户调用某个特定BLL服务时重建页面缓存、可以设置VaryByCustom属性自己控制。
      

  8.   

    http://www.google.com.hk/search?newwindow=1&safe=strict&hl=zh-CN&q=asp.net+%E9%A1%B5%E9%9D%A2%E7%BC%93%E5%AD%98+%E7%89%87%E6%AE%B5%E7%BC%93%E5%AD%98&oq=asp.net+%E9%A1%B5%E9%9D%A2%E7%BC%93%E5%AD%98+%E7%89%87%E6%AE%B5%E7%BC%93%E5%AD%98&gs_l=serp.3...17773.23912.0.24082.13.13.0.0.0.0.900.2001.3-2j1j0j1.4.0....0...1c.1j4.30.serp..11.2.1360.YyFXb2jZcKg