【问题标题】:updating webservice with objects when app exits应用程序退出时使用对象更新 Web 服务
【发布时间】:2011-09-14 06:08:42
【问题描述】:

我正在开发一个 Silverlight 应用程序,用户可以在其中创建、编辑、删除对象。他们所做的更改被放置在一个队列中,该队列每 4 分钟处理一次。处理后,更新通过异步 Web 方法调用发送,一次一个保存在 sql 数据库中。第一次更新完成后,下一次更新开始。
当用户进行更改然后在 4 分钟计时器到期之前退出浏览器应用程序时,我遇到了问题。目前,更改正在丢失。

我已经建立了在我之前从事此工作的人所做的工作,并探索了 Dispose 和 Finalize 方法,尝试在工厂关闭时启动更新过程,但由于异步性质,这不起作用Web 服务调用。我收到错误消息,说需要的对象已被处理掉。

当用户尝试关闭或刷新网页时,我正在寻找一种使用 web 方法将数据保存在更新队列中的方法。我不希望队列中挤满了更新。这是一个通常一次运行几个小时的应用程序。

【问题讨论】:

    标签: vb.net silverlight asynchronous dispose finalize


    【解决方案1】:

    您可以使用 Javascript 来阻止用户离开页面。 StackOverflow 做到了(尝试编辑答案并离开页面)。这适用于浏览器关闭以及页面导航。通过 Javascript,您还可以通知 Silverlight 应用程序保存任何排队的数据(Silverlight 支持向 Javascript 公开方法)。

    问。对于 Silverlight 应用程序,每 4 分钟保存一次有点奇怪。我猜它一次只能由一个用户运行。是什么限制了您更频繁地保存?

    【讨论】:

    • javascript 拦截效果很好。我找到了一个例子,here,它工作得非常好。如果有需要更新的数据,则会显示一个弹出窗口,提供离开或留下的选项,如果所有队列都是空的,则不会显示弹出窗口。我将添加一个卸载屏幕,以通知用户何时可以安全退出。
    猜你喜欢
    • 2013-01-28
    • 1970-01-01
    • 1970-01-01
    • 2014-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多