Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   закончилось место в localstorage. что делать? (https://javascript.ru/forum/misc/30675-zakonchilos-mesto-v-localstorage-chto-delat.html)

vadim5june 12.08.2012 07:57

Цитата:

Сообщение от mitiya
indexeddb мне не подходит

точно мозилла и хром поддерживают
опера точно не поддерживает
в ие у меня пример из jquery indexed DB что Вы дали не заработал

mitiya 12.08.2012 13:04

плевать на ИЕ . главное что в мобильных браузерах (по крайней мере на андроиде) заработал, офлайн режим на них рассчитан.

vadim5june 12.08.2012 14:11

Цитата:

Сообщение от mitiya (Сообщение 196892)
плевать на ИЕ . главное что в мобильных браузерах (по крайней мере на андроиде) заработал, офлайн режим на них рассчитан.

на андроиде и иос хром стоит-но как работает и что поддерживает не знаю

mitiya 12.08.2012 14:47

ну на андроиде я этот тест запускал и он работал.
если смотреть по http://html5test.com/
то там поддерживается не IndexedDB, а Web SQL Database.
но поскольку в том примере который я давал используется этот shim, то не надо разный код писать для IndexedDB и для Web SQL Database.

vadim5june 12.08.2012 14:57

Цитата:

Сообщение от mitiya
Web SQL Database

я с ней работал но ее сейчас пометили как неперспективную-только хром ее успел реализовать-
если есть это хорошо-а в эпловских я не знаю что используется

mitiya 12.08.2012 15:21

в общем мне нужна помощь вот с этим
тут есть вот этот код

// Code to create object stores and add data
(function(){
  $.indexedDB("databaseName", {
    "schema": {
      "1": function(versionTransaction){
        versionTransaction.createObjectStore("objectStore1");
      },
      "2": function(versionTransaction){
        versionTransaction.createObjectStore("objectStore2");
      }
    }
  }).transaction(["objectStore1", "objectStore2"]).then(function(){
    log("Transaction completed");
  }, function(){
    log("Transaction aborted");
  }, function(t){
    log("Transaction in progress");
    t.objectStore("objectStore1").add({
      "valueProp": "val",
      "anotherProp": 2
    }, 1).then(function(){
      log("Data added");
    }, function(){
      log("Error adding data");
    });
  });
})


я так понимаю это примерно то что мне и нужно.
но я не понимаю как это работает.
Что описывает schema ?
Надо мне что-то тут менять или можно так оставить.
И как мне получить данные из базы ?

vadim5june 12.08.2012 15:42

У меня пока его программа не заработала-скачал попробовал выдает ошибку причем в jquery
здесь у него собственные функции но примерно соответствуют функциям IndexedDB
он сразу создает 2 базы(store)(1-11строки)
их можно создавать только в обработчике смены номера версии
в схеме 1 и 2 это номер версии твоей программы
это одноразовая операция-лучше пользуйся вот этой ссылкой
там все по частям
http://nparashuram.com/jquery-indexe...e Object Store
когда база создана нужно создать транзакцию-12строчка
а в обработчике транзакции работаем с объектом(команда add-18 cтрока)
чтобы получить данные надо создавать cursor здесь у него нет-а по ссылке есть

mitiya 12.08.2012 15:47

а для чего эти версии вообще?

и я так понимаю там база то одна, а этих Object Store 2 в ней.

и я так понимаю что вся база это не sql ?

vadim5june 12.08.2012 16:00

Цитата:

Сообщение от mitiya (Сообщение 196934)
а для чего эти версии вообще?

почему они сделали что по крайней мере две операции создание store и создание index только в контексте изменения версии я не знаю-но так они сделали
Цитата:

Сообщение от mitiya
я так понимаю там база то одна, а этих Object Store 2 в ней

я тоже так считаю
это не SQL-этот язык поддерживать не будет и устроена по другому-хранилище объектов
то есть можно хранить сложный объект не используя JSON

mitiya 16.08.2012 01:07

вожусь ничего не выходит.

не понимаю как это работает блин ((


Часовой пояс GMT +3, время: 07:24.