我该如何完成这个程序?(javascript)

how do I finish this program? (javascript)

本文关键字:javascript 程序 何完成      更新时间:2023-09-26

下面的代码属于我目前正在尝试开发的一个crossrider扩展,它有望在浏览器之间同步书签。该文件目前是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);
});

好的,jQuery是您的标签之一,所以尝试这个链接:比较两个返回差异的数组。

它返回两个数组之间的差异。你必须为你正在做的事情执行两次,一次是为了弄清楚current中有什么不在previous中,反之亦然。我不知道你的书签中包含什么属性,所以这个简单的例子可能不完全适合你的需求,但它可能会为你指明正确的方向。

祝你好运,欢迎使用JavaScript!