ほとんどの作業が textarea 要素で行われる Chrome アプリ (パッケージ化されたアプリ) を開発しています。ユーザーの作業が自動的に保存されるようにしたいと考えています。
非現実的なアプローチの 1 つは、次のような方法で、キーストロークやテキストエリアへのその他の変更ごとに作業をファイルに保存することです。
$('#text').on("keypress paste cut change", function () {
// ... save to file
});
しかし、それではオーバーヘッドが大きすぎるので、代わりにダーティ フラグを設定するだけにしました。問題は、ダーティ フラグが設定されている場合に適切なタイミングで保存を有効にすることです。これらは私が思いついたいくつかの適切な時間であり、すべて簡単に実装できます。
毎分。これは、chrome.alarms.onAlarm が許可する最小の間隔です。
ユーザーが [ファイル] メニューの [終了] 項目でアプリを終了したとき。
ユーザーが [ファイル] メニューの [保存] 項目を明示的に選択した場合。(これは最終バージョンではなくなるかもしれませんが、開発中は非常に便利です。)
問題は、ユーザーがアプリまたはブラウザー全体を閉じたときに使用できるイベントがないことです。これらのイベントは JavaScript に存在しますが、Chrome アプリでは明確に禁止されています。私が理解している理論的根拠は、Chrome 開発者がこの松葉杖を提供したくないということです。代わりに、アプリ開発者に、継続的に作業を節約するアプリを実装するよう奨励したいと考えています。罰金!私はそれですべてです。
Chrome アプリで自動保存を実装する方法はありますか?
更新: おそらくこれまでの Chrome アプリの中で最も野心的な Gliffy Diagrams を見てみましたが、アプリ ウィンドウまたはドックから閉じると保存されません。ファイル メニューから [閉じる] または [保存] が選択された場合にのみ実行されます。それが基本的に私のアプリが行うことです。