【发布时间】:2020-08-02 18:21:42
【问题描述】:
我正在使用 asp.net、sql server 开发一个简单的 Web 应用程序。 我被困在一个点上,我的要求是当 user2 通过他的页面更新/添加数据库中的记录时自动刷新 user1 的页面。 user1 和 user 2 都在访问同一个表中的记录。 请问这个怎么做?
【问题讨论】:
-
即使在桌面上,这也是个坏主意。但是,用户是否正在编辑数据,比如一条记录,并且他们想查看其他用户的日期更新?或者你在谈论某种数据网格,用户正在查看这个数据网格,如果其他用户添加了新记录,那么你想看到新行出现吗?这个想法没问题,但它实际上取决于您希望看到其他用户的更新发生的时间/时间/地点。如果您在同时编辑记录时谈论这种情况,那么这充其量是混乱的,我会避免这种设计要求。
-
如果您只是显示数据,那么您能做的最好的可能就是在页面脚本中使用计时器来定期进行 AJAX 调用以检查任何更改并相应地更新页面。没有浏览器的请求,服务器不能任意通知用户响应。如果他们正在编辑,那么我同意这是一个坏主意,您应该让他们保存,捕获并发异常,向他们展示新数据,然后询问他们如何继续。
-
不一定是轮询解决方案,@jmcilhinney - 可以轻松使用信号器之类的东西,以便服务器可以通知浏览器,但我知道你的意思你说得对,开发一些试图让一切保持同步的东西是浪费时间。即使是像 stackoverflow 这样大的网站也不会打扰它。他们只是给了一个注释“其他人在你之前编辑了这个问题,你的编辑必须比他们的更实质性”
标签: asp.net vb.net web-applications