2013-07-03 56 views
-2

下面的代碼屬於crossrider擴展我目前正在嘗試開發,希望能跨瀏覽器同步書籤。該文件當前是background.js文件,它將首先從本地數據庫中檢索書籤文件的快照,然後將其與當前的書籤列表進行比較,如果存在任何差異(對書籤列表或減法添加內容),它們將用getChanges()函數返回,然後發送到服務器,最後腳本更新快照並等待30秒鐘,然後重新啓動進程。我真的不知道如何製作getChanges()函數。它需要返回一個大概的json對象,指出加法和減法(它們的標題和url)。如果有人可以編寫這個功能很好的代碼。由於我該如何完成這個程序? (javascript)

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); 
}); 
+0

對不起,朋友,這不是什麼StackOverflow在這裏。你是你的代碼的作者,而不是社區。你必須至少嘗試自己做,發佈你的嘗試,並提供代碼片段。對於一個不存在的函數來說,這是不夠的。嘗試一下,發佈你的'getChanges'函數,然後尋求幫助。這裏有很多人會很樂意這樣做。 (爲了記錄,我沒有投下你的問題。) – David

+0

以及問題是,我是新來的編碼,甚至更新的JavaScript,我真的不知道甚至從哪裏開始使用此功能 – user2491588

回答

0

好吧,你已經得到了jQuery的爲您的標籤之一,所以請訪問這個鏈接:Compare 2 arrays which returns difference

它返回兩個數組之間的差異。你必須執行兩次你所做的事情,一次找出current中不在previous中的內容,反之亦然。我不知道您的書籤中包含哪些屬性,因此這個簡單的示例可能並不完全適合您的需求,但它可能會指示您朝着正確的方向發展。

祝你好運,歡迎來到JavaScript!

+0

非常感謝thats cool – user2491588