Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Какие существуют нормальные способы хранения данных на стороне клиента (https://javascript.ru/forum/misc/57997-kakie-sushhestvuyut-normalnye-sposoby-khraneniya-dannykh-na-storone-klienta.html)

EmperioAf 29.08.2015 19:36

Какие существуют нормальные способы хранения данных на стороне клиента
 
Сразу оговорю, что мне интуитивно не нравится идея хранить данные на сервере. Хотя все сервер намного мощнее десктопных устройств, но качество интернета зависит от местоположения (за мкадом, как известно, жизни нет).

Из простых решений проблемы:
1) в JS файле хранить данные нехорошо, т.к. он предназначен для логика сайта/приложения
2) в HTML файле (в таблицах или в input[type='hidden'] например) хранить странно, ибо я в чужом коде этого ни разу не видел. Хотя мне импонирует эта идея. Но всю логику для работы с данными придётся писать самому...

А вот со сложными решениями я практически не знаком, и прошу просветить меня в этом направлении (как когда то Gozar взял и написал про angular.js, backbone.js, react.js, а главным выделил babel.js)


P.s.
nerv недавно кидал ссылку на pouchDB. Я скачал на гитхабе zip файл, но искомого pouchdb-4.0.0.min.js я не нашёл. Зато нашёл папку pouchdb-master\pouchdb-master\tests\integration\deps, где лежали postfixed js файлы вплоть до версии 3.6
Почему так? И я не нашёл readme файла со структурным описанием содержимого папки pouchdb-master. Откуда мне, 1-ый раз видящему эти файлы, догадаться что в этой папке за файлы лежат на 6,35Мб ?

laimas 29.08.2015 19:44

Цитата:

Сообщение от EmperioAf
Сразу оговорю, что мне интуитивно не нравится идея хранить данные на сервере.

Если данные не на сервере, это уже не веб приложение.

EmperioAf 29.08.2015 19:49

Цитата:

Сообщение от laimas (Сообщение 386349)
Если данные не на сервере, это уже не веб приложение.

это вопрос терминологии? Какая разница для пользователя это веб-приложение или нет? Вот, будет ли у него это быстро работать при билайновском интернете 64кбит/c в тьму-таракани для пользователя важно.

laimas 29.08.2015 19:52

Цитата:

Сообщение от EmperioAf
Какая разница для пользователя это веб-приложение или нет?

Ну если мне интуитивно не нравится идея хранить данные на сервере, то что подразумевается, веб приложение или нет? Как можно хранить данные на клиенте, если доступ к ним будет иметь только один пользователь? Значит речь идет о локальном приложении, ну а тога в чем виноват сервер? Для локального приложения он и не нужен.

EmperioAf 29.08.2015 19:58

сервер "виноват" в том, что хотелось бы собирать статистику для вычисления конверсии сайта. И локальное приложение (например исполняемый .exe файл) скачано и его не изменишь уже. А html страничку на сервере хостинг-провайдера я могу менять хоть каждую минуту по моему желанию

Erolast 29.08.2015 20:03

Не понял сути задачи... Нужно, чтобы у каждого юзера была собственная локальная база, с которой он работал? https://developer.mozilla.org/en-US/...eb_Storage_API

laimas 29.08.2015 20:06

Цитата:

Сообщение от EmperioAf
А html страничку на сервере хостинг-провайдера я могу менять хоть каждую минуту по моему желанию

html-страничка, это это не данные, да и данные, это не обязательно аватарка "это я слева". В общем какие то странные рассуждения о ненужном сервер. )

EmperioAf 29.08.2015 20:19

Цитата:

Сообщение от Erolast
Не понял сути задачи... Нужно, чтобы у каждого юзера была собственная локальная база, с которой он работал?

ну в общем то да, но ведь localstorage как и куки предназначен для хранения небольших объёмов данных. А если у меня несколько сотен килобайт русскоязычного текста ?

EmperioAf 29.08.2015 20:21

Цитата:

Сообщение от laimas
В общем какие то странные рассуждения о ненужном сервер

сервер находится к чёрту на куличках. Скажем в Москве, а я допустим нахожусь в Норильске Также могут быть любые погодные условия (магнитные бури, ливни и прочие "радости" жизни). Поэтому мне кажется красивым чтобы всё хранилось постоянно на устройстве. Грубо говоря бедолага, собирающий грибы в лесу один раз поймал инэт и скачал весь сайт вместо с БД, а потом пользуйся как хочешь.
В общем я один раз в жизни по собственной глупости узнал, что за МКАДом жизни нет.
А там живёт 90% населения страны. Тема по сути о локальных серверах, БД и хранилищах. О которых я ничего толком не знаю (есть же что то кроме localstorage и cookie)

Erolast 29.08.2015 20:26

Цитата:

но ведь localstorage как и куки предназначен для хранения небольших объёмов данных
localstorage как раз для больших. Конкретный размер зависит от браузера, но само минимально 5 мегабайт, вроде как, отводят.

laimas 29.08.2015 20:31

Цитата:

Сообщение от EmperioAf
Поэтому мне кажется красивым чтобы всё хранилось постоянно на устройстве.

Не может быть интернет столько примитивно однобоким. Фактически вам надо как и в "болезни нашего времени" - щелкнуть себя на очередном фоне и запостить в Инстаграм. Причем нельзя поставить оценку фото. Это одностороннее движение, симлекс-инретнет. )
Проблем нет - http://mozilla.github.io/localForage/

Но Интернет это шире, и данные на клиенте, это возможно кеширование, а не хранение. Так что это философский аспект - надо, не надо. А о "шпионить", так в этом плане ваше телефон может гораздо больше, чем сервер.

EmperioAf 29.08.2015 20:33

Цитата:

Сообщение от Erolast
localstorage как раз для больших.

Как всегда я пропустил самое важное при чтении :(
Тема более не актуальна - ушёл перечитывать

laimas 29.08.2015 20:39

Если хранить на клиенте все, значит и html-интерфейс не нужен, и лучше локальное приложение, и будет доступны гигабайты. Насчет баз, так они тоже есть, и без ограничений, как собственно и свою создать можно.

fuckYankee 30.08.2015 13:38

Цитата:

Сообщение от EmperioAf
1) в JS файле хранить данные нехорошо, т.к. он предназначен для логика сайта/приложения

А что значит хранить в данном контексте? Просто загрузить однократно, в этом чтоли смысле? Тогда может структуры данных вообще отменить?

По-существу. Для временного хранения на клиенте используется local storage и куки. Постоянное -- только сервер, точней не сам, а базы, файлы etc

fuckYankee 30.08.2015 13:45

laimas,
Вообще, идея годная, за этим могло бы быть будущее. Пиринговые сети на таком принципе работают. Это полная децентрализация. Только вот никто не даст, ибо полная потеря контроля.

Только конечно, речь не о хранении привязанной к конкретному клиенту информации, а о распределенном хранилище.

EmperioAf 30.08.2015 13:54

Цитата:

Сообщение от fuckYankee
А что значит хранить в данном контексте? Просто загрузить однократно, в этом чтоли смысле? Тогда может структуры данных вообще отменить?

я имею ввиду код такого вида:
if (condition){
  document.querySelector(selector).value = 'blablabla..много текста';    
}

laimas 30.08.2015 13:56

Цитата:

Сообщение от fuckYankee
Вообще, идея годная, за этим могло бы быть будущее.

Оно могло бы уже сейчас стать "будущим", однако же...
Кто владеет информацией — тот владеет миром, с чего вдруг я отдам "это свое богатство" кому-то? Не надо все в кучу.

fuckYankee 30.08.2015 13:57

EmperioAf,
Ну и какое это хранение на клиенте? До первой перезагрузки? В этом смысле клиент и так все "хранит"

nerv_ 30.08.2015 15:31

Цитата:

Сообщение от laimas
Если данные не на сервере, это уже не веб приложение.

абстрактный пример:
1. есть сервис
2. к которому пользователь делает запрос (допустим, форма)
3. тот (сервер) в свою очередь запрашивает данные у другого сервера
4. и возвращает их пользователю
согласно формулировке "это не веб приложение"


EmperioAf, слышал много умных слов, но не понимаешь их значение :)

Цитата:

Сообщение от EmperioAf
Откуда мне, 1-ый раз видящему эти файлы, догадаться что в этой папке за файлы лежат на 6,35Мб ?

существуют стандарты разработки, кот. обуславливают хранение готовых к подключению модулей ("файлов") в определенных директориях

Цитата:

Сообщение от laimas

спасибо, поставил плюс. Пожалуй, даже больше подходит под мою задачу, нежели pouchdb. Кроме того весит существенно меньше.
Существует ли ограничений по количеству баз?

EmperioAf 30.08.2015 15:40

Цитата:

Сообщение от nerv_
существуют стандарты разработки, кот. обуславливают хранение готовых к подключению модулей ("файлов") в определенных директориях

Правильно ли я понимаю, что обычно на этом форуме кидают ссылки с гитхаба на то, что применимо для Node.js ?
Цитата:

Сообщение от nerv_
знаешь много умных слов, но не понимаешь их значение

Да, увы не представляю как устроена архитектура разных ОС, архитектура сети интернет, архитектура разных браузеров и т.д.
И поэтому на чужой, незнакомый мне, рабочий код я часто смотрю как на магию и не понимаю значение всего этого. Просто увы ещё 2 года назад я был сильно далёк от мира IT. Но для того, чтобы работать программистом у меня практически идеальный характер и поэтому я взялся в 23 года всё это изучать...

laimas 30.08.2015 15:53

Цитата:

Сообщение от nerv_
тот (сервер) в свою очередь запрашивает данные у другого сервера

Но все таки сервер. А сыр бор из-за чего - исключить его вообще. Можно, если и без него вполне можно обойтись. Условно удаленный сервер я тоже могу считать своей машиной, и эта необходимость обуславливается не только данными, но и аппаратными требованиями. Можно долго спорить об этом, ну это будет беспредметный и некчемный спор. )

Цитата:

Сообщение от nerv_
Существует ли ограничений по количеству баз?

Вряд ли, по крайней мере в документации такого нет, что-то дополнительно почитать кроме подобного ничего не встречал. Максимальный размер под базу/базы скорее всего единственное ограничение.

nerv_ 30.08.2015 16:37

Цитата:

Сообщение от EmperioAf
Правильно ли я понимаю, что обычно на этом форуме кидают ссылки с гитхаба на то, что применимо для Node.js ?

конечно,... нет :D

Цитата:

Сообщение от EmperioAf
Но для того, чтобы работать программистом у меня практически идеальный характер

поздравляю :)

Цитата:

Сообщение от EmperioAf
Да, увы не представляю как устроена архитектура разных ОС, архитектура сети интернет, архитектура разных браузеров и т.д.

учись. Все в твоих руках твоей голове)

Цитата:

Сообщение от laimas
А сыр бор из-за чего

ммм, сыр =^_^=

Цитата:

Сообщение от laimas
Можно долго спорить об этом, ну это будет беспредметный и некчемный спор. )


:D

а, вообще, согласен)

Цитата:

Сообщение от laimas
Вряд ли, по крайней мере в документации такого нет, что-то дополнительно почитать кроме подобного ничего не встречал. Максимальный размер под базу/базы скорее всего единственное ограничение.

есть такое для pouchdb http://pouchdb.com/errors.html#phone...econd_database

скорее всего на localForage данное ограничение также распространяется. Надо или пробовать или ковыряться в исходниках.

laimas 30.08.2015 16:48

Цитата:

Сообщение от nerv_
скорее всего на localForage данное ограничение также распространяется

Да, на размер в любом случае будет ограничение.


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