【问题标题】:how do I finish this program? (javascript) [closed]我如何完成这个程序? (javascript)[关闭]
【发布时间】:2013-07-03 01:58:44
【问题描述】:

下面的代码属于我目前正在尝试开发的跨浏览器扩展,希望能够跨浏览器同步书签。该文件当前是 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);
});

【问题讨论】:

  • 对不起朋友,这不是 StackOverflow 的用途。您是代码的作者,而不是社区。您至少必须尝试自己做,发布您尝试过的内容并提供代码 sn-ps。一个不存在的函数的单行是不够的。试一试,发布您的getChanges 功能,然后寻求帮助。这里有很多人会很乐意这样做。 (为了记录,我没有否决你的问题。)
  • 问题是我是编码新手,甚至是 javascript 新手,我真的不知道从哪里开始使用这个函数

标签: javascript jquery json crossrider


【解决方案1】:

好的,您已将 jQuery 作为您的标签之一,因此请尝试以下链接:Compare 2 arrays which returns difference

它返回两个数组之间的差异。你必须为你正在做的事情执行两次,一次找出current 中的内容,而不是previous 中的内容,反之亦然。我不知道您的书签中包含哪些属性,因此这个简单的示例可能并不完全适合您的需求,但它可能会为您指明正确的方向。

祝你好运,欢迎使用 JavaScript!

【讨论】:

  • 非常感谢,这很酷
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-12
  • 2017-05-18
  • 2018-09-03
  • 2021-05-07
  • 1970-01-01
  • 2023-01-13
  • 1970-01-01
相关资源
最近更新 更多