1

JavaScript を使用した PC 用のオフライン Web アプリがあり、それにデータベースを追加しようとしています。問題は、(USB 経由で) 複数のコンピューターに永続的なデータ ストレージが必要なことです。そのため、このデータをコンピュータのハード ドライブではなく USB に保存する方法を見つけたいと考えています。

私はlokijsなどのソリューションを調べました。lokijs には永続的なストレージがありますが、Local Storage または IndexedDB 内に格納されています。これは、ブラウザを介してコンピュータに保存されることを意味します。これを解決する方法は、何らかの形で JavaScript を使用してファイルを読み書きするか、データベース ファイルを他のファイルと同じディレクトリに保存することです (USB 経由の移植性のため)。これを行う方法はありますか?私の知る限り、これを達成する方法はありません。

もう 1 つの解決策は、ポータブル バージョンの Chromeをダウンロードし、.bat ファイルを作成して、ポータブル Chrome を使用して Web アプリが開くようにすることです。ポータブル Chrome は、セッション間でローカル ストレージ/IndexedDB データを保持すると思います (よくわかりません)。ただし、この方法はかさばるので、私はむしろこれに依存したくありません。

では、この問題を解決する代替手段はありますか? または、データベースをローカルに保存および取得して、USB 経由で複数のコンピューター間で永続的なデータ ストレージを実現できる別の JavaScript データベースがありますか。

読んでいただきありがとうございます。回答をいただければ幸いです。

4

2 に答える 2

2

セキュリティ上の理由から、Javascript はディスクにアクセスできません。Web アプリを使用してローカル ドライブに読み書きすることはできません。そうしないと、マルウェアが拡散しやすくなります。これが、lokijs のようなソリューションがブラウザー内ストレージを使用する理由です。USBから実行できるポータブルストレージを備えたオフラインアプリが必要な場合は、別のテクノロジー/プログラミング言語を使用して書き直すことを検討しています. クロスプラットフォームも必要な場合は、おそらく Java が最適です。

于 2016-06-07T10:42:36.073 に答える
0

基本的には、Web テクノロジを使用して構築された移植可能なファット クライアント アプリケーションが必要です。これには複数の解決策があります。NodeWebKit などを使用することをお勧めします (JavaFX には JavaScript による Web レンダリング機能もあります)。

于 2016-06-07T10:49:58.327 に答える