我在使用silverlight应用程序,用户可以在其中创建,编辑,删除对象。他们所做的更改被放置在一个每4分钟处理一次的队列中。处理时,更新将通过异步Web方法调用发送,以便一次保存在sql数据库中。第一次更新完成后,下一次更新 我在用户进行更改时遇到问题,然后在4分钟计时器到期之前退出浏览器应用程序。目前,这些变化正在消失。
我已经建立了在我之前完成这个工作的人,并探索了Dispose和Finalize方法,尝试在工厂关闭时启动更新过程,但由于异步性质,这不起作用网络服务电话。我得到错误,说已经处理了所需的对象。
我正在寻找一种在用户尝试关闭或刷新网页时使用webmethod在updatequeue中保存数据的方法。我不希望队列充满更新。这是一个通常一次运行几个小时的应用程序。
答案 0 :(得分:1)
您可以使用Javascript停止用户离开页面。 StackOverflow会这样做(尝试编辑答案并离开页面)。这适用于浏览器关闭以及页面导航。从Javascript您还可以通知Silverlight应用程序以保存任何排队的数据(Silverlight支持向Javascript公开方法)。
Q值。对于Silverlight应用程序,每4分钟保存一次略显奇怪的行为。我猜它只能由一个用户一次运行。什么限制你更频繁地储蓄?