IndexedDb文件位置可以为共享位置吗

时间:2018-11-27 22:52:00

标签: indexeddb progressive-web-apps

我有一个渐进式Web应用程序,员工可以在断开模式下使用它。他们在商店中扫描库存物品,该应用程序搜索本地数据以找到扫描的物品(具有约1/2百万条记录的indexedDb数据存储)。

此数据完全同步到每月一次,并且通过api调用每天增量同步。

扫描多个项目后,笔记本电脑已连接并上传了扫描结果。这是可行的,但是现在多个人共享同一台计算机,每个人都有自己的登录名。这要求每个用户都有自己的indexdDb。据我了解,indexedDb文件存储在每个用户的user / AppData文件夹下。

有没有办法在同一台计算机上的用户之间共享相同的indexdDb实例?还是我可以选择每个用户拥有一个实例或使用其他技术。任何建议表示赞赏。

2 个答案:

答案 0 :(得分:2)

开箱即用,将无法使用。这不是您所描述的:

  

indexedDb文件存储在每个用户的user / AppData文件夹下

更具体地说,IndexedDB数据存储在浏览器配置文件文件夹中。对于某些浏览器,用户和配置文件之间没有一对一的关系。通常,这种区别并不重要,但是可以为您的问题提供答案!

总体思路是:

  1. 创建将用于此应用程序的配置文件。

  2. 找出使用该配置文件启动浏览器的命令(通过命令行将其传入,和/或如果配置文件文件夹必须位于每个用户的特定文件夹内,则使用符号链接)。

  3. 让用户使用该命令打开浏览器以与您的应用进行交互,否则他们将无法访问共享的IndexedDB数据库。

显然这是一个可怕的骇客,但我认为应该有可能使其工作。

答案 1 :(得分:0)

IndexedDB使您可以存储和检索用“键”索引的对象。您对数据库所做的所有更改都在事务内发生。与大多数Web存储解决方案一样,IndexedDB遵循同源策略。因此,尽管您可以访问域中存储的数据,但不能跨不同域访问数据。

如果您在同一台计算机上有多个用户,每个用户使用相同的浏览器并访问相同的来源,则可以轻松地将不同用户的信息存储在同一indexedDB数据库中。

但是任何人都可以检查数据库的内容,任何用户都可以删除其中的所有数据。