LINUX.ORG.RU

JavaScript, хранить локально много

 ,


0

1

Нужно позволить сайту хранить у клиента много данных (возможно гигабайты), естественно, с разрешения клиента. Какие у современных браузеров есть варианты реализации этого? local storage в некоторых браузерах при заполнении спрашивает у пользователя, не хочет ли он увеличить квоту для сайта, но это не во всех браузерах есть. Желательно решение, работающее во всех современных браузерах, на старые версии пофиг.

★★★★★

Последнее исправление: maxcom (всего исправлений: 1)

Погугли в сторону доступа к ФС.

А еще что-то там связанное с БД есть в новых стандартах.

Anon
()
Ответ на: комментарий от anonymous

Лолчто?

Почитай про fileAPI: как вариант, в начале сессии пользователь указывает файл БД, а потом уже работает с ним. Ясен пень, нужно будет гигов так 16 оперативки...

Еще есть такая хрень, как "Indexed Database API", но мне ее спецификации влом читать.

Anon
()

Можно взять FireBreath и накатать на нём минимальный плагин для браузера, который даст тебе из JavaScript доступ к файловой системе компа.

uuwaan ★★
()
Ответ на: комментарий от anonymous

Предлагаешь клиенту скачивать этот файл и потом открывать через FileAPI?

Файл генерируется явоскриптом, а клиент — да, как бы "скачивает" его по окончании сеанса.

Но это, конечно, жуткий костыль. Лучше таки в сторону баз данных посмотреть — авось заработает этот вариант.

А вообще, хранить данные на сервере проще и надежней (да и юзеру удобнее, т.к. не надо вручную синхронизировать учетки на 100500 компьютеров).

Anon
()

ТС, продублируй вопрос на stackexchange — больше шансов, что ответ получишь. Там народу намного больше.

Anon
()
Ответ на: комментарий от Anon

Как будто делать web-систему, которая хранит локально гигабайты, кошерно.

А Firebreath лучше «просто» плагина тем, что позволяет сгенерировать из ОДНОГО кода готовые плагины для ВСЕХ браузеров под Windows, Linux и OS X.

uuwaan ★★
()
Ответ на: комментарий от uuwaan

Как будто делать web-систему, которая хранит локально гигабайты, кошерно.

99.999%, что ТС что-то делает неправильно.

Anon
()
Ответ на: комментарий от Anon

Извини, был неправ. В следующий раз буду смайлики ставить. Пары десятков хватит?

linuxnewb
()

Автор, сайт не сможешь гарантированно хранить никакую инфу на сторону клиента, ибо доступ к ФС для JS запрещён. Есть кэш, да. Но кэшем управляет браузер. Единственный способ - java applet подписанный, в случае его использования у клиента будет запрошено разрешение на доступ к ФС и какие то функции станут доступны.

Alve ★★★★★
()

Legioner, а что за данные, кстати? Может, можно обойтись кешированием страницы?

linuxnewb
()

WOW!

Я придумал элементарнейший вариант: доступ к данным выполняется локальным CGI, который вызывается из JS с внешнего сайта.

Да, говнобраузеры, в которых XSS запрещен, идут лесом. Но это проблема говнобраузеров.

Anon
()

На самом деле ты этого не хочешь. По крайней мере не в браузере.

anonymous
()

Кстатии, couchdb хорошо реплицируется и работает даже на ондроедах.

linuxnewb
()
Ответ на: комментарий от trashymichael

Прикол в том, что веб-морда обычно является наилучшим решением для всякой кроссплатформенной фигни. А клиент — это же жуткий геморрой (под мастдайку делай, под гейось, под "мобильные" гейоси...).

Anon
()
Ответ на: комментарий от anonymous

Я — нет. А вот ТС, похоже, — да.

А вообще, браузер на мобиле — это нонсенс!

Anon
()
Ответ на: комментарий от Anon

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

trashymichael ★★★
()
Ответ на: комментарий от Anon

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

trashymichael ★★★
()
Ответ на: комментарий от trashymichael

С кроссбраузерностью проблем почти нет: html5 нонче почти одинаково работает и в последнем хромом, и в последнем огнелисе. Больше вроде браузеров не существует, насколько я знаю…

Anon
()

Я вот обратил внимание, что один форум попросил у меня доступ к яндекс.диску для хранения вложений.

special-k ★★★★
()
Ответ на: комментарий от trashymichael

Я рассматриваю возможность использовать сайт как клиент. Джаваскрипт уже достаточно зрелый язык как в плане возможностей, так и в плане производительности. Веб тоже зрелая платформа. Кроссплатформенность между операционными системами и мобильными устройствами очень хорошая. Вопрос только в доступных аппаратных ресурсах.

Indexed DB вроде то, что надо, но это молодой стандарт, не всеми поддерживается.

Legioner ★★★★★
() автор топика
Ответ на: комментарий от trashymichael

Смотря что за жесткий диск у клиента.

Но на мой взгляд, хранить локально больше пары десятков мегабайт на сайт — бред. А уж гигабайты — так и подавно!

С другой стороны, если это — браузерная игрушка, то уровни имеет смысл хранить локально, чтобы каждый раз эти сотни мегабайт не грузить. В этом случае действительно какая-нибудь Indexed DB может помочь.

Anon
()
Ответ на: комментарий от Anon

Но на мой взгляд, хранить локально больше пары десятков мегабайт на сайт — бред. А уж гигабайты — так и подавно!

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

Legioner ★★★★★
() автор топика
Ответ на: комментарий от trashymichael

Ну это проблемы браузеров, зачем их держать в памяти? Базы данных уже лет 50 разрабатываются.

Legioner ★★★★★
() автор топика
Ответ на: комментарий от Megamozg

Я уже выше про это говорил. ТСа не устраивает, т.к. нужно огромный файл сначала целиком считать с диска в память (причем, пользователь должен явно через диалог открытия файла его выбрать), а по окончании сессии — записать (тоже через диалог сохранения).

Anon
()
Ответ на: комментарий от Legioner

Ты хоть примерно задачу скажи, что хранить собираешься?

linuxnewb
()
Ответ на: комментарий от Legioner

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

trashymichael ★★★
()
Ответ на: комментарий от trashymichael

Гугл тоже путает. ОС тоже может запускаться на устройстве без винтов. Спасибо за разрешение, это было очень важно для меня.

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

Legioner ★★★★★
() автор топика
Ответ на: комментарий от trashymichael

расскажи лучше нам как звучит задача и что ты там хранить собрался

trashymichael ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.