crossrider:存储本地数据库中书签的快照,并与当前书签列表进行比较

时间:2013-07-02 02:07:50

标签: javascript jquery local crossrider

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

如果你能提供一个代码示例,那将是很棒的,但如果你只是想在概念上解释它就没问题。

1 个答案:

答案 0 :(得分:0)

从概念上讲,您可以通过使用appAPI.db.async将以前的书签列表存储在扩展程序的本地数据库中,将其与使用appAPI.bookmarks.getTree获取的当前书签列表进行比较,然后将其发送到API服务器来实现目标使用appAPI.request.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);
});