Может ли расположение файла IndexedDb быть общим - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть прогрессивное веб-приложение, которое сотрудники используют в автономном режиме.Они сканируют предметы инвентаря в магазине, приложение ищет локальные данные, чтобы найти отсканированный предмет (хранилище данных indexedDb с около 1/2 миллиона записей).

Эти данные полностью синхронизируются с ежемесячными, и ежедневно пересекаются с вызовами API.

После сканирования нескольких объектов ноутбук подключается и сканы загружаются.Это работает, но теперь несколько человек используют один и тот же компьютер, каждый со своим логином.Это требовало от каждого пользователя иметь свою собственную indexedDb.Насколько я понимаю, файл indexedDb хранится в папке user / AppData для каждого пользователя.

Есть ли какой-либо способ предоставить один и тот же экземпляр indexedDb пользователям на одной машине?Или я могу выбрать экземпляр для каждого пользователя или использовать другую технологию.Любые предложения приветствуются.

Ответы [ 2 ]

0 голосов
/ 10 декабря 2018

Из коробки это не будет работать.Это не совсем то, что вы описали:

файл indexedDB хранится в папке user / AppData для каждого пользователя

Более конкретно, данные IndexedDB хранятся в папке профиля браузера,Для некоторых браузеров нет однозначного отношения между пользователями и профилями.Обычно это различие не важно, но оно может дать ответ на вашу проблему!

Общая идея такова:

  1. Создайте профиль, который вы будете использовать для этого приложения.

  2. Определите команду для запуска браузера, использующего этот профиль (передайте его через командную строку и / или используйте символическую ссылку, если папка профиля должна находиться в определенной папке вuser).

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

Очевидно, что это ужасный взлом, но я думаю, что это должно быть возможно.

0 голосов
/ 28 ноября 2018

IndexedDB позволяет хранить и извлекать объекты, которые проиндексированы с помощью «ключа».Все изменения, которые вы вносите в базу данных, происходят внутри транзакций.Как и большинство решений для веб-хранилищ, IndexedDB следует политике того же происхождения.Таким образом, хотя вы можете получить доступ к сохраненным данным в домене, вы не можете получить доступ к данным в разных доменах.

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

Но любой может проверить содержимое базы данных, и любой пользователь может удалить все данные в ней.

...