2016-05-25 18 views
0

私はインタラクティブなWebベースの視覚化を持っています。私は、ユーザーがビジュアライゼーションと対話しながら元に戻すことができるようにしたい。私は自分の元に戻す機能を書いてほしいという人がいることに気づいたが、私の場合は本当に難しいかもしれない。各インタラクションの後にアプリケーション全体の最後の状態を保存するにはどうすればよいですか?何か案が?JS内のアプリケーション全体の最新の状態を保存

おかげで、

+0

あなたの州はどこにいますか?私たちに見せてください。 –

答えて

1

あなたはより多くの国家主導のアプローチを使用して反応+ Reduxのようなものを使用しますが、あなたはすでにあなたが再作成したくない既存のアプリを持っているように聞こえることができます。

この場合、データは実際にどのように見えるかによって異なります。それは単一のJSONオブジェクトですか?その場合、以前の状態を「保存」するオブジェクトを何度も複製することができます。

ロールバックできるように、データベースを実装し、必要なすべてのデータのコピーをタイムスタンプやバージョン番号で保存することができます。これは明らかに多くのデータの重複につながります。

もう1つの方法は、データを変更するすべてのイベントを追跡してから、そのイベントの反対のことを行うことです。非常に基本的な例として、私は「合計」に15という数字を追加します。元に戻す場合は、15を引いた値になります。ただし、これはすべてのデータに対して操作を実行している場合にのみ有効です。これをさまざまな種類のデータに適用する場合は、以前の値と一緒にイベントを保存することができます。

例:私の名前を「Bob」から「Jim」に変更します。このイベントは、オブジェクトになる可能性があります。

{ 
    event: "stringChange", 
    prop: "name", 
    prev: "Bob", 
    new: "Jim" 
} 

これにより、変更を元に戻すために必要なすべてが提供されます。

ここでたくさんのオプションがありますが、実際のデータはどのように見え、どのように操作しているかによって大きく変わります。

関連する問題