-2

以下のコードは、私が現在開発しようとしている crossrider 拡張機能に属しており、ブラウザー間でブックマークを同期できることを願っています。このファイルは現在 background.js ファイルであり、最初にローカル データベースからブックマーク ファイルのスナップショットを取得し、それを現在のブックマーク リストと比較します。相違点 (ブックマーク リストへの追加または削除) がある場合は、 getChanges() 関数で返されてからサーバーに送信され、最後にスクリプトがスナップショットを更新し、プロセスを再開する前に 30 秒待機します。getChanges() 関数の作成方法がよくわかりません。おそらく、加算と減算の両方 (タイトルと URL の両方) を示す json オブジェクトを返す必要があります。誰かが関数のコードを書くことができれば、それは素晴らしいことです. ありがとう

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);
});
4

1 に答える 1

0

OK、タグの 1 つとして jQuery を持っているので、次のリンクを試してください: Compare 2 arrays which returns difference .

2 つの配列の違いを返します。これを 2 回実行する必要があります。1 回目は何が入っていて何が入っcurrentていないかを把握するためですprevious。あなたのブックマークに含まれているプロパティがわからないので、この単純な例はあなたのニーズに正確には合わないかもしれませんが、正しい方向を示しているかもしれません.

JavaScript へようこそ!

于 2013-07-03T02:41:50.387 に答える