以下代码属于我目前正在尝试开发的交叉推进器扩展程序,希望能够跨浏览器同步书签。此文件当前是background.js文件,它将首先从本地数据库中检索书签文件的快照,然后将其与当前书签列表进行比较,如果存在任何差异(添加书签列表或减法),它们将使用getChanges()函数返回然后发送到服务器,最后脚本更新快照并等待30秒再重新启动进程。我真的不知道如何制作getChanges()函数。它需要返回一个json对象,指示添加和减少(它们的标题和URL)。如果有人可以编写功能强大的代码。感谢
appAPI.ready(function() {
// Poll every 30 seconds
setInterval(function() {
appAPI.db.async.get('prevBookmarks', function(value) {
// Load or initialize previous bookmarks list
var prevBookmarks = (value) ? value : {};
// Get current bookmarks
appAPI.bookmarks.getTree(function(nodes) {
// Save bookmark list for next comparison
appAPI.db.async.set('prevBookmarks', nodes);
// In your getChanges functions, traverse the bookmark trees collating
// changes and then post then to your API server using appAPI.request
var changes = getChanges(prevBookmarks, nodes);
appAPI.request.post({
url: http://yourAPIserver.com,
postData: changes,
contentType: 'application/json'
});
});
});
}, 30 * 1000);
});
答案 0 :(得分:0)
好的,你已经将jQuery作为你的标签之一,所以试试这个链接:Compare 2 arrays which returns difference。
它返回两个数组之间的差异。你必须为你正在做的事情执行两次这样的操作,一次找出current
中不在previous
内的内容,反之亦然。我不知道您的书签中包含哪些属性,因此这个简单的示例可能不完全符合您的需求,但它可能会指向您正确的方向。
祝你好运,欢迎使用JavaScript!