我正在创建一个基于云的应用程序,用于管理文章。我也是一个桌面开发人员,所以我从来没有遇到过互联网缺位的问题,主要是因为我在本地使用db,然后在用户的PC上工作。
这一次,应用程序是在云上,然后我会知道是否有办法继续工作,即使客户没有连接。
发布于 2016-12-12 23:57:28
您必须提供一些本地的客户端逻辑,以及使用本地存储。脱机查看缓存的内容。接收稍后连接时生效的命令。
这并不简单:有许多考虑因素,因为这不仅意味着复制客户端上的某些业务逻辑,这已经够糟糕了;但是,一般来说,这不能变得透明,这意味着用户体验更加复杂和需要开发。
假设离线时我做了一些更改。但回到实际系统中,我缓存的内容已经过时,因为其他在线用户正在进行更改。我的更改是否仍按我的意愿进行,尽管我在进行这些更改时缓存的值和假设可能不再有效,但它们是否应该按原样进行呢?在一般情况下,没有好的答案。是的,送他们过去可能很糟糕(例如,支付我配偶刚刚支付的第二次账单);其中一个选择是放弃所有这些更改(也是非常不友好的),最后,在一般情况下很难协调这些更改。
对于一般情况,没有神奇的解决方案;然而,一些问题域使得这比其他问题更可行。深入到问题领域及其用例可能是您可以做到最好的地方,而不是一般地试图解决这个问题。
在某些域中,它可能会提供缓存的内容,并支持用户记录他们希望向前推进的更改。当恢复在线时,在(调整和/或)应用之前,检查每一张便条或打算更改的内容以进行确认。如果用户知道他们将离线,您也可能允许一个选项预下载一些集或子集。否则,缓存中可能没有任何东西可供他们使用。
https://softwareengineering.stackexchange.com/questions/338034
复制相似问题