2013-07-03 6 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 и наоборот. Я не знаю, какие свойства содержатся в ваших записях, поэтому этот простой пример может не соответствовать вашим потребностям, но он может указать вам в правильном направлении.

Удачи вам и добро пожаловать!

+0

большое спасибо thats cool – user2491588

Смежные вопросы