javascript - 如何使用 DBChangeTracker 进行多次同步?

标签 javascript html synchronization

我正在使用 SequelSphere 为网络应用程序存储数据,并且我正在使用更改跟踪器来跟踪更改。第一次同步时,跟踪器返回更改的行。第二次同步时,跟踪器返回第一组和第二组更改的行。这是我正在做的:

// create my tracker
var tracker = db.changeTrackers.create("order_tracker", ["orders"]);

// insert first set of orders
for (var i = 0; i < firstOrders; ++i)
    db.insertRow("orders", firstOrders[i]);

// sync orders up
performSync(db.changeTrackers.get("order_tracker").getChangedRows());

// insert more orders (second set)
for (var i = 0; i < secondOrders; ++i)
    db.insertRow("orders", secondOrders[i]);

// sync second set of orders up
performSync(db.changeTrackers.get("order_tracker").getChangedRows());

第一次同步工作正常。第二个同步发送第一组和第二组的所有订单。我只希望它返回第二组。我怎样才能让它只返回第二组?

最佳答案

在此处查找 DBChangeTracker 的 API:SequelSphere API

实际上有两种方法可以回答您的问题:

1) 使用“clearChanges()”方法从您的 DBChangeTracker 中删除所有更改。您可以在同步后立即“按逻辑”执行此操作:

// sync orders up
var tracker = db.changeTrackers.get("order_tracker");
performSync(tracker.getChangedRows());
tracker.clearChanges();

2) 如果数据同步异步发生,结束跟踪并使用第二个更改跟踪器来保存新的更改:

// End first set of changes in tracker, start second
var trackerOne = db.changeTrackers.get("order_tracker");
trackerOne.endTracking();
var trackerTwo = db.changeTrackers.create("order_tracker_2", ["orders"]);
// sync orders up
performSync(tracker.getChangedRows());
// Get rid of first tracker
db.changeTrackers.drop("order_tracker");

让我知道这是否足够!

关于javascript - 如何使用 DBChangeTracker 进行多次同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13636800/

相关文章:

javascript - 如何在javascript中从img src获取 "real"url

html - 移动设备上的 Bootstrap 网格布局

android - 使用Whatsapp同步Android联系人列表中新插入的联系人以获取链接

go - Golang 中的广播()

javascript - 棘手的 Javascript : how to retrieve value from json dict inside array inside dict :)

javascript - 浏览器如何知道图像是否已加载?

html - 移动网站 - 在方向更改时重置视口(viewport)

javascript - jquery中的多个元素选择

java - 同步块(synchronized block)和 while 循环优化排序

javascript - Onmousedown javascript 未触发