локальное хранилище против веб-SQL

Я работаю над проектом, это мобильное веб-приложение. Я использую мобильный JQuery.

У меня есть страница с просмотром списка jquery, когда пользователь нажимает на каждый элемент в списке, все данные, связанные с этим элементом, передаются на страницу диалога. Я использовал локальное хранилище для передачи значений между страницами. Однако то, что я пытаюсь сделать, это записать действия пользователя и отобразить их в виде канала активности. Сохранение того, на какой элемент они нажали, сколько времени они провели на открытой странице диалога и чтобы иметь возможность отображать всю эту информацию на новой странице. пример

Вы нажали на элемент а

Вы потратили 15 секунд на пункт b

и т.п.

Итак, подойдет ли локальное хранилище для этого или WEB SQL?

Я также заметил, что WeB SQL больше не поддерживается активно? http://www.w3.org/TR/webdatabase/ означает ли это, что быть устаревшим?

Пример локального хранилища:

каждый элемент представляет собой объект json, мне нужно передать весь объект, чтобы просмотреть его на новой странице, поэтому у меня есть:

function addPostToLocalStorage(YTfeeditems){
    $(".item").on('click', function () {
        
        var i = $('.item').index(this);
        console.log(i);
        
        var Viditem = YTfeeditems[i];
        console.log(Viditem);

        localStorage['youtubeclickedPost'] = JSON.stringify(Viditem);
        storedItem = localStorage['youtubeclickedPost'];
        retrievPostFromLocalStorage();
    }
});

function retrievPostFromLocalStorage(){
    var retrievedStringItem = localStorage.getItem(['youtubeclickedPost']);
    var convertedPost = JSON.parse(retrievedStringItem);
    showDetailedPost(convertedPost);
}

при нажатии элемента я хотел бы сохранить идентификатор видео, записать время, когда оно было нажато, записать, как долго была открыта страница ytfullviewpage, а также на этой странице записать, был ли нажат палец вверх или если был нажат палец вниз , добавьте эти сведения в локальный накопитель и извлеките их на новой странице, чтобы отобразить их. Кажется, я понимаю подход к локальному хранилищу при этом. Я вставил свой javascript для этого здесь

что может дать вам лучшее представление.


person Dot    schedule 16.07.2013    source источник
comment
Локальное хранилище, если оно доступно, идеально подходит для этого. Он прост в использовании, и вам не нужен какой-либо язык запросов, поэтому SQL (любого типа) будет излишним.   -  person Reinstate Monica Cellio    schedule 16.07.2013
comment
@Archer в настоящее время я использую локальное хранилище для хранения элемента, когда пользователь нажимает на него, я хочу иметь возможность извлекать все элементы, на которые нажал пользователь, но каждый раз, когда пользователь нажимает на новый элемент, он перезаписывает ключ, поэтому я могу получить только последний сохраненный элемент. Должен ли я давать разные ключи для каждого элемента, на который нажимает пользователь? Если да, то как этого можно достичь, потому что я просматриваю список? :с   -  person Dot    schedule 16.07.2013
comment
Вы можете сохранить объект, который содержит всю информацию об элементе. Просто извлеките объект, запишите новую информацию и снова сохраните ее. Если вы приведете пример того, какую информацию вы хотите хранить за клик, я сделаю для вас пример и опубликую ответ.   -  person Reinstate Monica Cellio    schedule 16.07.2013
comment
@Арчер, большое спасибо! Я добавил свой javascript на pastebin и отредактировал свой вопрос со ссылкой. Пожалуйста, посмотрите и дайте мне знать.   -  person Dot    schedule 16.07.2013
comment
Я привел в порядок код, который вы добавили, но я его не понимаю. Вы добавляете обработчик событий внутри функции??? Таким образом, вы не будете обрабатывать событие щелчка, пока эта функция не будет выполнена.   -  person Reinstate Monica Cellio    schedule 16.07.2013
comment
@Archer Теперь я удалил обработчик функции, и это работает.   -  person Dot    schedule 17.07.2013


Ответы (1)


WEB SQL устарел, однако по-прежнему доступен на некоторых платформах http://caniuse.com/#feat=sql-storage localstorage возможно, вам подойдет решение. Если вы чувствуете, что вам нужно больше места для хранения, используйте http://pouchdb.com/, поскольку на нем есть кросс-адаптеры для разных хранилищ браузера и некоторые приятные функции, такие как синхронизация.

person timmak    schedule 16.07.2013
comment
+1 для PouchDB. Это элегантное решение, которое очень хорошо заменяет Web SQL. - person Seiyria; 16.07.2013
comment
@timmak спасибо, я посмотрю на poucheDB, однако, если локальное хранилище является хорошим решением, я хочу иметь возможность его использовать, но я не уверен, как его реализовать, если я должен хранить несколько элементов и получить их все на новой странице - person Dot; 17.07.2013