私の質問をスコープするための前文:
jQueryとAJAXを広範囲に使用してUIのコンテンツセクションをブラウザーに動的にロードするWebアプリ(またはサイト、これは内部LANサイト)があります。ユーザーは、ナビゲーションメニューを使用してアプリをナビゲートします。ナビゲーションメニューの項目をクリックすると、phpがAJAXで呼び出され、phpは中央のコンテンツセクションに入力するために使用されるコンテンツを返します。
phpによって提供されるページの1つには、ユーザーが値を入力するスプレッドシートのように設定されたテーブルフォームがあります。このテーブルは、データベース内のデータと常に同期しています。したがって、テーブルが作成されると、関連するデータベースデータが入力されますか。次に、ユーザーが「セル」に変更を加えると、その変更はすぐにデータベースに書き戻されるため、テーブルとデータベースは常に同期されます。このアプローチは、入力したデータが保存されていることをユーザーに安心させ(長い話...)、ある種の保存ボタンをクリックする必要がないようにするために採用されました。
したがって、これは常に同期するという考え方が優れています。ただし、ユーザーはセルに値を入力し、セルからフォーカスを外すのではなく、最後の値が失われる原因となるアクションをいくつでも実行できます。ナビゲーションメニューを介してサイトの別のセクション、アプリからログアウト、ブラウザを閉じるなど。
前文の終わり、問題について:
最初は、どのデータが「ダーティ」であるか、または保存されていないかを追跡するだけなので、それは問題ではないと思いました。その後、onunloadイベントで、データベースへの最終書き込みを行いました。ここに問題があります:私の賢い(またはそれほど賢くない、わからない)AJAXの使用とコンテンツセクションの動的な読み込みのため、上記のアクションが実行されたときに、ユーザーが実際に元のURLまたはページを離れることはありません。ブラウザを閉じます。したがって、onunloadイベントは発生せず、最後のデータが再び失われます。
私の質問ですが、コンテンツがこのように動的に読み込まれるときに、人がアプリの「セクション」から離れて移動しているかどうかを把握するための推奨される方法はありますか?
グローバルと現在表示されているページの追跡を含む解決策を思いつくことはできますが、もっとエレガントな解決策があるかどうか、またはデザインに変更を加えることができるかどうかを確認すると思いました。この作品。
いつものようによろしくお願いします!