Cordova离线同步 - 在Pull-JS库上多次调用API

时间:2017-06-28 09:38:10

标签: azure azure-mobile-services offlineapps

我们观察到执行脱机同步选择性拉取查询时发生了三次API调用

  1. GET domain/tables/Events?$filter=updatedAt%20ge%20datetimeoffset'1969-12-30T22:00:00.000Z'

  2. GET domain/tables/Events?$filter=updatedAt%20ge%20datetimeoffset'2017-06-27T22:00:00.000Z'(当前日期时间)

  3. GET domain/tables/Events?$filter=updatedAt%20ge%20datetimeoffset'2017-06-27T22:00:00.000Z'&$skip=1

  4. 每次拉动时都会发生这3次调用,有人可以解释为什么会这样吗?选择性同步查询以以下格式创建

    syncContext .pull(new WindowsAzure.Query('Events'), 'eventspull') .then(function() { /* pull complete */ });

    我们正在使用以下javascript离线库的最新版本。 https://zumo.blob.core.windows.net/sdk/azure-mobile-apps-client.js

1 个答案:

答案 0 :(得分:0)

  

每次拉动都会发生这3次调用,有人可以解释为什么会这样吗?

这是因为“ pull ”函数一次从服务器表中提取一页。您可以查看source code here了解详情。

假设您有数千条记录。如果您在没有分页的情况下执行查询,那么在接收和处理数据时,您可能会在手机上占用相当长的一段时间。为了缓解这种情况并允许您的移动应用程序保持响应,客户端SDK实现了分页。默认情况下,每个分页操作将请求50条记录。实际上,这意味着您会看到比预期更多的请求。

有关详细信息,请参阅Understanding offline sync