【问题标题】:Check if need to update the local data(Web Service)检查是否需要更新本地数据(Web Service)
【发布时间】:2017-12-31 13:59:16
【问题描述】:

我有一个 android 应用程序,我需要提高性能和请求互联网。 我在 .net 中也有一个网络服务。

当我输入一个人的个人资料时,我总是需要再次下载个人资料,但我想验证我是否需要下载个人资料(新数据)。

我想创建一个日期列,每当有人修改个人资料时,更新日期列。 在android中,从localDB加载并验证本地的“更新日期”是否与远程数据库(Web服务)相同,如果不是从api下载数据。

这是正确的做法吗? 什么是更好的方法? 也许使用 int 来验证“配置文件的版本”?

谢谢

【问题讨论】:

    标签: android web-services asp.net-web-api local-database


    【解决方案1】:

    如果不联系它,您无法在本地设备上知道 Web 服务器上发生了什么。我会将配置文件缓存在 android 内存缓存或数据库中,并在后台调用 Web 服务以检查新数据。

    我还会在服务器上缓存配置文件,在 Web 服务上,因为如果您拥有它(如 Web 应用程序),它将有助于 Web 服务的其他消费者的性能。当有人更改配置文件时(在您的 POST 或 PUT 方法中不要忘记使缓存无效)。 当您从网络服务更新数据库接收到新配置文件或将其缓存在 android 中时。

    【讨论】:

    • “如果不联系它,您无法在本地设备上知道 Web 服务器上发生了什么”是的,但我的问题不是……我的问题是:我可以创建一个列来验证是否我需要从 api 获取新数据?如果此列不同(本地为 01-01-2017,api 为 02-02-2017),我从 api 获得,如果它相同,则可以...什么也不做。
    • 在服务器的数据库(SQL,mySQL)中,您可以拥有 LastDate 属性(配置文件的最后更改日期),在移动设备上,您将在请求之前检查该数据是否与服务器的 LastDate 匹配完整的资料?你可以这样做,但仍然需要往返服务器当然。
    • 是的,但我不需要总是下载完整的配置文件(20 个属性),我只需要发送 1 个属性,但这是一个好方法吗?
    • 从性能角度来说绝对是非常不错的。唯一的缺点是您有特殊的 API 来检查数据是否是最新的。作为一名程序员,这需要您付出额外的努力,因此从维护的角度来看,这可能会很困难,具体取决于您的整体 API 有多大。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-06
    • 2018-02-20
    • 2013-05-07
    相关资源
    最近更新 更多