asp.net 功能讨论
我现在做一个bs的程序。想实现一个功能就是,一个人在向数据库中录入内容后,另一个人同时在打开网页的时候,右下角弹出提示框。
网上好多资料说时时查询数据库,但我想这样的话服务器的压力会很大。还有什么别的办法吗?
跪等高手...
------解决方案--------------------异步调用?
------解决方案--------------------
------解决方案--------------------个人推荐用AJAX实时获取最新的数据
------解决方案--------------------看你的用户有多少 比如每个用户每秒请求一次 然后1000个用户 那就是每秒1000个数据库的读取操作
所以你应该换个思路
------解决方案--------------------比如你用户进去的时候查一下数据库看看是否有人操作 然后谈一个窗口出来
再比如用户提交数据的时候检查是否有人操作 如果有人就给个提示 表示把他的数据放到操作队列里面了 稍后会提交
后台开一个线程定时检查这个操作队列 如果有数据就提交
------解决方案--------------------那还真只能ajax,除非你用某些富客户端比如silverlight或者flash
------解决方案--------------------我觉得可以用服务器缓存来做,用户插入到数据库的时候将最后插入的那一条数据放入服务器缓存中,用户每次访问的时候从服务器缓存中去读取,这样不用查询数据库
------解决方案--------------------说了没有好办法了,
你还不信,
多了解下WEBFORM工作原理就知道为什么了。
你要是能找到一个不耗服务器性能,
又能解决你的需求的方法,
只要是能通用的方法,
你告诉我,
我马上给你1000块钱感谢费!!!!!
------解决方案--------------------
------解决方案--------------------直接向另一个人发送个消息可行不?类似会话通知、邀请之类的
------解决方案--------------------一条数据对于服务器来说压力不是好大,比每次去访问数据库要好多了
------解决方案--------------------这个"实时性"也是个相对概念,
又不是做网络游戏,
有那么强烈的实时性需要。。。。。
因此,没有必要AJAX查询那么频繁,
比如5秒或10秒查询一次就可以了,
这样相信对服务器的压力不算很大