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)

mitiya 11.08.2012 22:30

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

Есть какое-то решение для такой ситуации ?

vadim5june 11.08.2012 22:42

Цитата:

Сообщение от mitiya (Сообщение 196746)
Есть какое-то решение для такой ситуации ?

увеличить квоту в 5 мегабайт нельзя в localStorage можно
использовать DB Index
но работает не везде
есть еще Api File System только в хроме пока работает

lamer 11.08.2012 23:13

Блин, читал что localstorage можно использовать вместо куков, но как реализовать и примеры так и не понял, читал мануал от Девоте, у него там с небольшим примерам был, но тоже не понял, подскажите подробнее плиз где лучше почитать ?

ТС сорри за оффтоп.

mitiya 11.08.2012 23:15

vadim5june,
не поделитесь какой-нибудь ссылкой на то как пользоваться этим DB Index ?

vadim5june 11.08.2012 23:31

Цитата:

Сообщение от mitiya (Сообщение 196770)
vadim5june,
не поделитесь какой-нибудь ссылкой на то как пользоваться этим DB Index ?

я сам изучал вот по этим ссылкам
http://habrahabr.ru/post/138987/
https://developer.mozilla.org/en-US/...sing_IndexedDB
и там еще на сайте mozilla но все на английском

vadim5june 11.08.2012 23:36

Цитата:

Сообщение от lamer (Сообщение 196766)
Блин, читал что localstorage можно использовать вместо куков, но как реализовать и примеры так и не понял, читал мануал от Девоте, у него там с небольшим примерам был, но тоже не понял, подскажите подробнее плиз где лучше почитать ?
ТС сорри за оффтоп.

там все просто и статьи маленькие типа
http://codestorage.ru/rabotaem-s-htm...torage-osnovy/
localStorage.a='tratata';//запомнили
alert(localStorage.a)//прочитали

mitiya 11.08.2012 23:56

Цитата:

Сообщение от vadim5june (Сообщение 196781)
я сам изучал вот по этим ссылкам
http://habrahabr.ru/post/138987/
https://developer.mozilla.org/en-US/...sing_IndexedDB
и там еще на сайте mozilla но все на английском

честно говоря все это вызывает взрыв мозга ((

не знаю с какой стороны подойти даже.

как мне создать эту базу данных ?
как не затереть ее если она уже есть ?
и еще какие-то непонятные вещи там ((

был бы признателен за пример
сохранения ключ=значение
т получения ключа в переменную

Deff 12.08.2012 00:00

mitiya,
:) А ужать ? Русский текст мон раза в два три

Deff 12.08.2012 00:02

Цитата:

Сообщение от mitiya
был бы признателен за пример
сохранения ключ=значение
т получения ключа в переменную

Там готовый пример в первом посте - кроссбраузерно
http://javascript.ru/forum/project/2...a-ie6-7-a.html

mitiya 12.08.2012 00:03

Цитата:

Сообщение от Deff (Сообщение 196792)
mitiya,
:) А ужать ? Русский текст мон раза в два три

это не решит проблему, а только отсрочит.

но все равно, как это сделать ?

mitiya 12.08.2012 00:05

Цитата:

Сообщение от Deff (Сообщение 196793)
Там готовый пример в первом посте - кроссбраузерно
http://javascript.ru/forum/project/2...a-ie6-7-a.html

я про сохранение в IndexedDB а не localstorage, там то все опнятно.

Deff 12.08.2012 00:07

mitiya,
Гы - тут есть опус - мон потестить ужатие => Тест => http://dl.dropbox.com/u/19390559/squeeze/test.html
Опус => http://javascript.ru/forum/misc/2931...tml#post189187 пост 87

mitiya 12.08.2012 00:19

Цитата:

Сообщение от Deff (Сообщение 196797)
mitiya,
Гы - тут есть опус - мон потестить ужатие => Тест => http://dl.dropbox.com/u/19390559/squeeze/test.html
Опус => http://javascript.ru/forum/misc/2931...tml#post189187 пост 87

что-то я не совсем понят, что эта штука делает.

Deff 12.08.2012 00:31

mitiya,

там в тест засуньте свой текст в окошечко => Cейчас выставлены максимальные галки
При большом тексте - ужатие порядка двух
(цифры слево под окном

vadim5june 12.08.2012 00:49

Цитата:

Сообщение от mitiya (Сообщение 196770)
vadim5june,
не поделитесь какой-нибудь ссылкой на то как пользоваться этим DB Index ?

Там так просто как в localStorage не будет
Вот нашел у себя рабочий пример-работает только в хроме
http://all-html5.narod.ru/3/indexDB1.htm

Deff 12.08.2012 01:03

mitiya,
А не пробовал текст загонять в погружаемый скрипт ?
Скрипт - кешируюца и можно считать данные в оффлайне

mitiya 12.08.2012 01:06

Цитата:

Сообщение от Deff (Сообщение 196803)
mitiya,

там в тест засуньте свой текст в окошечко => Cейчас выставлены максимальные галки
При большом тексте - ужатие порядка двух
(цифры слево под окном

я видел это. только я не пойму как это работает. что он делает с текстом?
там меньше чаров становиться что ли ? как это ?

Deff 12.08.2012 01:08

Цитата:

Сообщение от mitiya
там меньше чаров становиться что ли ? как это ?

Ну как винzip работает так и это - метода кодирования другая

На Хабре есть винzip на ява-скрипт - ток давно видел - искать нужно

mitiya 12.08.2012 01:13

Цитата:

Сообщение от Deff (Сообщение 196808)
mitiya,
А не пробовал текст загонять в погружаемый скрипт ?
Скрипт - кешируюца и можно считать данные в оффлайне

подумываю об этом. но это костыль какой-то по-моему.

и пока не представляю как с этим работать.

mitiya 12.08.2012 01:14

Цитата:

Сообщение от vadim5june (Сообщение 196806)
Там так просто как в localStorage не будет
Вот нашел у себя рабочий пример-работает только в хроме
http://all-html5.narod.ru/3/indexDB1.htm

а с чем связано что только в хроме ?

vadim5june 12.08.2012 01:22

Цитата:

Сообщение от mitiya (Сообщение 196812)
а с чем связано что только в хроме ?

у мозиллы нужно по другому смену версий программы делать-у меня его нет я не делал
аналогично для ие

Deff 12.08.2012 01:23

Цитата:

Сообщение от mitiya
и пока не представляю как с этим работать.

Ну - например
Cам скрипт на странице
<script type="text/javascript" src="/main-text.js"></script>


Текст скрипта
var a = '(цифры слево под окном \n\
\n\
\n\
я видел это. только я не пойму как это работает. что он делает с текстом?\n\
 там меньше чаров становиться что ли ? как это ?\n\
   \n\
\n\
   #18 (permalink)   \n\
 Сегодня, 01:08 \n\
Deff  \n\
Профессор\n\
 Карма:  +780  \n\
   	 	Регистрация: 25.05.2012\n\
 Сообщений: 3,105 \n\
\n\
Цитата выделенного \n\
\n\
\n\
 Сообщение от mitiya \n\
 там меньше чаров становиться что ли ? как это ? \n\
\n\
\n\
Ну как винzip работает так и это - метода кодирования другая\n\
\n\
 На Хабре есть винzip на ява-скрипт - ток давно видел - искать нужно\n\
    \n\
\n\
   #19 (permalink)   \n\
 Сегодня, 01:13 \n\
mitiya  \n\
Аспирант\n\
 Карма:  +10  \n\
   	 	Регистрация: 13.01.2011\n\
 Сообщений: 47 \n\
\n\
Цитата выделенного \n\
\n\
\n\
 Сообщение от Deff  \n\
mitiya,\n\
 А не пробовал текст загонять в погружаемый скрипт ?\n\
 Скрипт - кешируюца и можно считать данные в оффлайне \n\
\n\
\n\
подумываю об этом. но это костыль какой-то по-моему.\n\
\n\
 и пока не представляю как с этим работать.\n\
   \n\
\n\
   #20 (permalink)   \n\
 Сегодня, 01:14 \n\
mitiya  \n\
Аспирант\n\
 Карма:  +10  \n\
   	 	Регистрация: 13.01.2011\n\
 Сообщений: 47 \n\
\n\
Цитата выделенного \n\
\n\
\n\
 Сообщение от vadim5june  \n\
 Там так просто как в localStorage не будет\n\
 Вот нашел у себя рабочий пример-работает только в хроме\n\
[url]http://all-html5.narod.ru/3/indexDB1.htm[/url] \n\
\n\
\n\
а с чем связано что только в хроме ?';

alert(a)

mitiya 12.08.2012 01:24

мда. еще версии какие-то ((

я так понял что тут вроде как кросбраузерно http://habrahabr.ru/post/138987/

но все равно не понятно как пользоваться.

mitiya 12.08.2012 01:26

Цитата:

Сообщение от Deff (Сообщение 196814)
Ну - например
Cам скрипт на странице
<script type="text/javascript" src="/main-text.js"></script>



да но мне то это нужно как-то все в ответ на ajax запрос воткнуть.

данные то в mysql лежат, и зависят от пользователя.

Deff 12.08.2012 01:30

mitiya,
Jsonom передавай - новые данные - новый скрипт в Аяксе включить кеширование, и установить на серве указание браузеру кеширования для данных скриптов
при востребованости - просто вставляешь либо стационарный вызов - либо аяксом - должен вернуть скрипт из кеша

Для определенности - пусть каждому скрипту имя Дата в секундах - тады они все раздельно и не путаюца

main.text-1344717048.js

mitiya 12.08.2012 01:41

я может чего-то не понимаю, но мне кажется что время кэша запроса не очень большое, и уж точно кэша не будет после перезагрузки браузера.

Deff 12.08.2012 01:47

mitiya,
Найди сайт со слайдером
Да - отключи инет и закрой брауз - потом открой браузер (не включая инета - потыкай слайдер

mitiya 12.08.2012 03:16

vadim5june,
судя по этой таблице http://caniuse.com/indexeddb

indexeddb мне не подходит ((

mitiya 12.08.2012 03:49

я так понял для того что бы кросбраузерно воспользоваться IndexedDB
мне нужно использовать вот это вот с этим. Но у меня честно говоря компетенции не хватает что бы понять как (

mitiya 12.08.2012 04:14

Цитата:

Сообщение от Дзен-трансгуманист (Сообщение 196834)
Если все тексты - последовательные версии одного исходника...

тексты совершенно разные. это просто контент.

мне определенно нужно разобраться как эта штука работает

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, время: 23:17.