Список постоянных избранных - PullRequest
0 голосов
/ 14 марта 2012

Мне нужно отслеживать список из 25 избранных, которые добавляются из списка из ~ 100 записей.Эти фавориты будут в списке, скажем,

  • "избранное 1"
  • "избранное 2"
  • "избранное 3" .... так далее

и мне нужно, чтобы они постоянно хранились.Я также потребовал бы, чтобы их можно было удалить и заменить другим любимым строковым значением.Я посмотрел на Как сохранить массив в localStorage? , но это не работает для меня, потому что когда я объявляю var names=[]; в файле javascript, каждый раз, когда запускается моя функция избранных, он повторно объявляет массив иочищает все

Я пытался сделать что-то вроде:

function addToFav(string)
{
    if (localStorage.fav1)  // if fav1 was created before
    {
        alert("local storage fav1 present, don't make variables");
    }
    else
    {
        alert('fav variables never made, make them now');
        var i=1;
        for (i=1; i<=25; i++)
        {
            var favNumber = "fav" + i;
            localStorage.favNumber = "x";
        }
        alert(localStorage.fav1);                   // outputs "undefined"
    }
}

я собирался сделать переменные localStorage равными fav1, fav2, fav3 ... fav25, а затемуправлять ими индивидуально.Но это не работает, поскольку при вызове localStorage.favNumber = "x"; переменная локального хранилища favNumber равна "x", а не fav+i.

.момент;Я посмотрел на http://playground.html5rocks.com/#async_transactions, чтобы попытаться использовать базу данных HTML5, но я очень плохо знаком с веб-разработкой, и это кажется слишком большим для того, что я пытаюсь сделать.Кто-нибудь знает, как решить эту проблему?Любая информация будет полезна.

1 Ответ

0 голосов
/ 15 марта 2012

Это может помочь.Я использую их для хранения информации в локальном хранилище с резервной копией cookie ...

function setLocalStorage(c_name, value) {
    var exdays = 30;
    // if localStorage is present, use that
    if (('localStorage' in window) && window.localStorage !== null) {
        localStorage[c_name] = value;
    } else {
        var exdate = new Date();
        exdate.setDate(exdate.getDate() + exdays);
        var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" +     exdate.toUTCString());
        document.cookie = c_name + "=" + c_value;
    }
}

function getLocalStorage(c_name) {
    // if localStorage is present, use that
    if (('localStorage' in window) && window.localStorage !== null) {
        return localStorage[c_name];
    } else {
        var i, x, y, ARRcookies = document.cookie.split(";");
        for (i = 0; i < ARRcookies.length; i++) {
            x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("="));
            y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1);
            x = x.replace(/^\s+|\s+$/g, "");
            if (x == c_name) {
                return unescape(y);
            }
        }
    }
}
...