0

如何存储书签列表的快照,然后每隔 n 次将其与当前的 bookmars 列表进行比较,并使用条件语句输出已添加的任何书签?我一直试图这样做无济于事。

如果您可以提供一个代码示例,那就太好了,但如果您只是想从概念上解释它,那就没问题了。

4

1 回答 1

0

从概念上讲,您可以通过使用 appAPI.db.async 将先前的书签列表存储在扩展的本地数据库中,将其与使用appAPI.bookmarks.getTree获得的当前书签列表进行比较,然后使用appAPI将其发送到您的 API 服务器来实现您的目标。请求.post

您可以在background.js文件中使用以下代码作为处理书签列表的起点,并根据需要编写自己的比较函数 (getChanges):

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);
});
于 2013-07-02T14:53:28.020 回答