私は、複数のタブを開いて、それぞれのタブでさまざまな操作を行うことができる単一のページアプリを持っています。ユーザーがリフレッシュまたはバックをヒットした場合、ユーザーは作業中のすべてを失います。損失を防ぐために、おそらくハッシュバングとクッキーを組み合わせた方法がありますか?たとえば、ユーザーが更新する場合、使用していたすべてのタブがバックアップされます。複数のタブをハッシュバンで扱う
0
A
答えて
2
クッキーに対しては、HTTPリクエストに対する不要なオーバーヘッドが発生するため、これをお勧めします。
AmplifyJS
はsessionStorage
、globalStorage
とuserData
にフォールバック(IE)と、localStorage
可能であればを使用して、永続的なデータのクロスブラウザのサポートを提供します。
1
おそらくonbeforeunload
イベントを使用します。このイベントは、ユーザーがページをアンロード(リフレッシュ/リダイレクト/ etc)する直前に(名前が示すように)呼び出され、保存されていないデータからページから離れようとしていることをユーザーに警告できます。
window.onbeforeunload = function(e) {
e = e || window.event;
var warning = 'You\'ve made changes to this page. Are you sure you don\'t want to save them?';
if(e) {
e.returnValue = warning;
}
return warning;
}
は、イベントのより詳細な概要についてはMDN Docsを参照してください。
データを保存する方法、などlocalStorage
、サーバーへIndexedDB
、AJAX
と(最後に)Cookies
の多くがあります。
+0
これはおそらく私がやることです。ありがとう。 – LordZardeck
関連する問題
- 1. 複数のAVAudioPlayersを扱う
- 2. 複数のUserControlsを扱う
- 3. 複数のプロジェクトを扱う
- 4. 複数のリストタイプを扱う
- 5. 複数のカレンダーを扱う
- 6. 複数のJFramesを扱う
- 7. 複数のmodels.pyをalembicで扱う
- 8. SFMLで複数のクライアントソケットを扱う
- 9. symfony3で複数のポータルを扱う
- 10. angularjsで複数のナビゲーションバーを扱う
- 11. CMakeで複数のプロジェクトを扱う
- 12. async_acceptで複数のクライアントを扱う
- 13. CakePHPで複数のURL値を扱う
- 14. セジソンで複数のカートを扱うPHP
- 15. Javaで複数のタイムゾーンを扱う
- 16. Outlookで複数のカレンダーを扱う
- 17. PHP扱う複数のチェックボックス
- 18. 複数のデータレイヤーを複数のクラスで扱う
- 19. Javaで複素数を扱うには?
- 20. Laravel-ピボットテーブルの複数のチェックボックスを扱う
- 21. 複数のファイルを扱うPythonのマルチプロセッシング
- 22. 複数のプラットフォームの実装を扱う
- 23. Matlabの複数の画像を扱う
- 24. 複数のSDカードスロットを扱う方法
- 25. 複数のNSTimerを扱うには?
- 26. Nodejs - 複数の配列を扱う
- 27. 複数ページのJSONとTableViewを扱う?
- 28. 複数のファイルを扱うVBA-
- 29. 複数のオブジェクトを扱うGWTサービス
- 30. 複数のフラグメント値を扱う
クッキーを使用する特別な理由はありませんが、localStorage ...を使用することもできます。 – dmp
はすべてのブラウザで動作する必要があります。 HTML5はオプションではありません – LordZardeck
次回の質問で言及することは素晴らしいでしょう:) – Saebekassebil