都内で働くSEの技術的なひとりごと / Technical soliloquy of System Engineer working in Tokyo

都内でサラリーマンやってます。SQL Server を中心とした (2023年からは Azure も。) マイクロソフト系(たまに、OSS系などマイクロソフト以外の技術も...)の技術的なことについて書いています。日々の仕事の中で、気になったことを技術要素関係なく気まぐれに選んでいるので記事内容は開発言語、インフラ等ばらばらです。なお、当ブログで発信、発言は私個人のものであり、所属する組織、企業、団体等とは何のかかわりもございません。ブログの内容もきちんと検証して使用してください。英語の勉強のため、英語の

IndexedDB

興味の湧くもの見つけました。Exchange Team Blogで見つけた、Outlook Web App 2013 でのオフライン アクセスという記事です。

 

このオフラインアクセスに関してどのような技術を採用しているかというと、

--------

ブラウザーのローカル データベースには、Exchange メールボックスの内容の一部が保存されます。Internet Explorer では、このデータベースは業界標準HTML5 IndexedDB (英語) データベースです。SafariChrome では、これは WebSQL (英語) データベースです。データの保存場所、クォータ、およびデータの最終的な処分を決定するのは、ブラウザーです (Outlook Web App ではありません)。Outlook Web App がオフライン用にセットアップされると、必要なすべての Outlook Web App データをローカルにコピーするプロセスが開始されます。高帯域幅のネットワークなら、通常、このプロセスは 1 分か 2 分で完了します。いったんオフラインがセットアップされると、このプロセスは Outlook Web App が使用されているときは必ず実行され、それによってサーバー側での変更がローカル データベースに反映されるようにします。

--------

 

JavascriptからIndexedDB API使ってクライアント側にデータを残すことが可能なんですね。しかも、RDBMSのような操作(テーブル定義、インデックス、トランザクション等)もできるんですね。興味湧きます。