我们观察到,当我们执行离线同步选择性拉取查询时,发生了三个 API 调用
GET domain/tables/Events?$filter=updatedAt%20ge%20datetimeoffset'1969-12-30T22:00:00.000Z'
GET domain/tables/Events?$filter=updatedAt%20ge%20datetimeoffset'2017-06-27T22:00:00.000Z'
(当前日期时间)GET domain/tables/Events?$filter=updatedAt%20ge%20datetimeoffset'2017-06-27T22:00:00.000Z'&$skip=1
每次拉取完成时都会发生这 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
最佳答案
These 3 calls happen every time a pull is done, can anyone explain why this happens?
发生这种情况是因为“pull”函数一次从服务器表中拉出一页。您可以查看source code here了解详情。
假设您有数千条记录。如果您在没有分页的情况下执行查询,那么在接收和处理数据时,您可能会在电话上占用相当长的一段时间。为了缓解这种情况并让您的移动应用程序保持响应能力,客户端 SDK 实现了分页。默认情况下,每次分页操作将请求 50 条记录。实际上,这意味着您将看到比预期多的请求。
更多信息请参阅Understanding offline sync .
关于azure - Cordova 离线同步 - 多次调用 Pull 上的 API - JS 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44798891/