「ブラウザで動くツール」と聞くと、ファイルをインターネットへ送って処理しているイメージがあります。

しかし、ブラウザ上のツールでも、選択したファイルを端末内のJavaScriptだけで処理することはできます。

つまり、画面がブラウザかどうかとデータがどこで処理されるかは別の話です。

ブラウザ内でローカル処理する

MDNのFile APIでは、ユーザーがファイル入力やドラッグ&ドロップで選んだファイルを、Webアプリが File オブジェクトとして扱えることが説明されています。

FileReaderを使えば、FileやBlobとして渡された内容をブラウザ側で読み取れます。一般的なファイル選択では、ユーザーが選んだファイルがFileとして渡されます。

この仕組みだけで、

  • CSV解析
  • 文字コード確認
  • 画像変換
  • JSON整形

などを実行できます。

サーバー送信が必須というわけではありません。

サーバー処理する

一方、ファイルをサーバーへアップロードし、サーバー側プログラムで処理するWebアプリもあります。

大容量処理、複雑なAIモデル、データベース保存、複数人共有などではサーバー処理が向く場合があります。

この場合、ファイル内容はネットワークを通って外部サーバーへ送られます。

ハイブリッドもある

画面表示や簡単な解析はローカル、必要な処理だけサーバー、というツールもあります。

たとえば、

  • CSVはローカル解析
  • エラー統計だけサーバー送信

のような設計です。

「ローカル処理対応」と書かれていても、一切通信しないとは限りません。

デスクトップアプリ

デスクトップアプリはPCへインストールして使います。

ブラウザよりファイルシステムへ深くアクセスできたり、OS機能と連携しやすかったりします。

一方、インストールやアップデート管理が必要です。

何を基準に選ぶか

ブラウザローカル

  • インストール不要
  • ファイルを外部送信したくない
  • 単体処理中心

サーバー処理

  • 複数人共有
  • データ保存
  • 高負荷処理
  • サーバー側AI

デスクトップ

  • OS統合
  • 常駐処理
  • 大容量ローカル処理
  • オフライン運用

と考えると分かりやすくなります。

「ブラウザだから安全」とは限らない

File APIでローカル処理できても、JavaScriptは fetch() などでネットワーク通信もできます。

したがって、

ブラウザで動く
ファイル選択はローカル

だけでは「外部送信なし」の証拠にはなりません。

プライバシーが重要なら、ツールの説明、ソース、Network通信なども確認します。

参考

  • MDN: File API
    https://developer.mozilla.org/en-US/docs/Web/API/File_API
  • MDN: FileReader
    https://developer.mozilla.org/en-US/docs/Web/API/FileReader
  • MDN: Fetch API
    https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API

おすすめの記事