一个新闻首页页面(a.aspx) 里面有许多datalist控件 同时有大量的sql语句在后台读取数据库数据 然后分别进行数据绑定 将查询的数据绑定至a.aspx的datalist中
现在想对其进行优化 希望服务器定时对该页面内的数据进行更新 每隔15分钟 然后将页面的静态页面的代码绑定至一个新的页面中(b.aspx) 也就是说 用户访问这个页面的时候 服务器只展示静态的页面 内部的各个链接都已经写好 只有到下一个15分钟时 才会自动刷新 而用户在这15分钟之内无论后台数据库是否有新数据添加 无论用户如何刷新 都显示的是相同的内容
不知这样的效果如何实现?求解答asp.net优化新闻
现在想对其进行优化 希望服务器定时对该页面内的数据进行更新 每隔15分钟 然后将页面的静态页面的代码绑定至一个新的页面中(b.aspx) 也就是说 用户访问这个页面的时候 服务器只展示静态的页面 内部的各个链接都已经写好 只有到下一个15分钟时 才会自动刷新 而用户在这15分钟之内无论后台数据库是否有新数据添加 无论用户如何刷新 都显示的是相同的内容
不知这样的效果如何实现?求解答asp.net优化新闻
解决方案 »
- 关于用户登陆成功后用户名始终显示的问题
- easyui和extjs 那个前者是否代替了后者
- 网页中用到AJAX日历控件,和有TabContainer,还在在本地可以浏览,到了服务器上就没效果了~
- 在后台代码中调用该带参数的存储过程(在线等,解决立马给分)
- asp.net中datagrid绑定数据
- ASP中msg的问题
- 如何返回DBNull.Value,而不是返回0.
- 小问题老是解决不了,各位来接分.急~~~~~~~~~~~~
- 框架问题?框架能够调用html页面,如果指向aspx页面就出错!帮忙看看很急的??
- 如何实现在net2.0的treeview中选种一个节点的checkbok后 其他节点的checkbok全部不被选种?
- js 代码如何控制点击一个 <asp:CheckBox 让另一个Checkbox也选中
- 浏览器不兼容问题
这样可以缓解很多压力,比如页面的生存周期,加载服务器控件的等等,你只需要写一个服务,过15分钟用读取好的内容替换那个显示页面即可那个页面上要有自己刷新的JS。。这样就可以了
那就是说在a页面上设置定时更新的控件吧 那应该如何将a的内容读到b上来?
=======================
优化方式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禁用掉
【这种方式是配合上面两种进行深度优化。】
然后缓存?保存15分钟应该就可以了。
#8说的很细了,你可以试试看
你这种要求,在你的aspx写上简单的一个 @Cache 语句设置Duration就行了。谈不上需要什么“技术”,只要见过Asp.net就行。实际上,Duration是“底线”。真正的页面缓存(或者片段缓存)可以根据其它状态来自动刷新。例如当你设置Duration为10分钟,这10分钟之内,你可以再设置当数据库某个表被修改时重建页面缓存、当某个用户调用某个特定BLL服务时重建页面缓存、可以设置VaryByCustom属性自己控制。