最近在试着做一个学习性质的小系统,大体就是:很多人向数据库写东西,我这边开着IE能实时显示这些改变。开发工具是vs2003.net,因为是无刷新所以用ajax.net, 起初是在页面用javascript的settimeout函数每隔一秒重新加载所有数据库数据,在页面中用javascript画出table,
后来觉得每次加载所有数据浪费,就按时间取出新的数据,再在页面中用table.insertRow()“追画”到table中。
再后来觉得 如果很多人开着IE在实时显示,那么每个人都在执行一个连数据库的进程,这也是浪费,就想能不能在服务器中维护一个“数据缓存”,服务器每隔一秒就更新这块“数据缓存”,而每个客户链接都向这块“数据缓存”中取新的数据。这样服务器只需维护一个“数据缓存”到SQL Server的链接了。 “数据缓存”想用cache做(如果数据量大,不知合适不?),至于自动更新“数据缓存”就找到了孟子E章的这篇文章http://blog.csdn.net/net_lover/archive/2003/08/27/6943.aspx,他用的是Application_Start()、Application_End()这两个事件,Application_End好像只有在iis重启才触发。我想了想我的情况,能不能在有客户连接服务器时就执行更新“数据缓存”,没客户链接就不自动更新了?(怎么说也得要让服务器休息休息啊^_^)最近严重透支(问题多啊),请大家不吝指教,有分了再“追加”。谢谢。
后来觉得每次加载所有数据浪费,就按时间取出新的数据,再在页面中用table.insertRow()“追画”到table中。
再后来觉得 如果很多人开着IE在实时显示,那么每个人都在执行一个连数据库的进程,这也是浪费,就想能不能在服务器中维护一个“数据缓存”,服务器每隔一秒就更新这块“数据缓存”,而每个客户链接都向这块“数据缓存”中取新的数据。这样服务器只需维护一个“数据缓存”到SQL Server的链接了。 “数据缓存”想用cache做(如果数据量大,不知合适不?),至于自动更新“数据缓存”就找到了孟子E章的这篇文章http://blog.csdn.net/net_lover/archive/2003/08/27/6943.aspx,他用的是Application_Start()、Application_End()这两个事件,Application_End好像只有在iis重启才触发。我想了想我的情况,能不能在有客户连接服务器时就执行更新“数据缓存”,没客户链接就不自动更新了?(怎么说也得要让服务器休息休息啊^_^)最近严重透支(问题多啊),请大家不吝指教,有分了再“追加”。谢谢。
解决方案 »
- 请教一个含法语字符的搜索问题.
- 小白求教:asp.net预览出现错误:无法打开登录所请求的数据库 "DropdownTest"。登录失败。用户 'sa' 登录失败。
- DAL层,如何为ADD方法写一个事件,如添加成功的事件委托;
- 我怎么样能延迟2秒执行onmouseover事件。
- 招聘兼职asp.net+c#+sqlserver高手
- 还是asp.net发布问题
- 输出特效时如果替换空格就不行
- 新手急问:如何在服务器端获取客户端提交的字符串?
- 可不可以对安装好的.net Framework进行操作 还要那个DataGrid是从哪里来的,今天才学asp.net
- Ctype(Controls,TextBox).Text什么意思?
- xsl:value 问题
- 问个小问题,没分了,不好意思
“数据缓存”就得用cache做吧?vs2003中还有别的方法?
小生认为,分两步去做可能比较合适,对数据的变更操作,首先存非数据库容器一部分,并记录变更时间,然后变更数据库内容。获取方面,由用户发送对接时间与GUID,如果是非全部获取用户,则只从非数据库容器中获取相应内容。否则从库中获得。
非数据库容器目前小生认为CACHE是最合适的。
分两种方式获取有种让我“拍脑袋”的冲动^_^。 "在实战中这样做用户一多对数据库压力会比较大。"用户都向“数据缓存”中取数据了,数据库的压力应该与用户的多少没关系了吧?
还是有点不太对,按我说的意思,是“数据缓存”不断获取数据库内容,不管是一个用户还是100个用户,都是“数据缓存”在跟SQL Server打交道(只有一个数据库链接),客户打交道的是Cache中的“数据缓存”(这可能是我想的理想情况,实际怎么运行不知道了^_^)