2017-08-24 16 views
0

私は別の開発者が残した何かに取り組んでいるので、これらの機能がどのように機能するかは完全にはわかりません。ですから、私はいくつかの値を保存するためにhistory.pushStateを使用しています。私のデータの一部をプリフェッチできるようにするためです。たとえば、私の状態でpageNumberとproductCountを保存しているので、後で使用することができます。history.stateをスキップしてpreviosuページに移動

だから、私はこれを上使用しているビューに、コンソールにhistory.stateログは次のようになります。

init: null 
pageNumber: 3 
productCount: 150 

したがって、各ブラウザのバックボタン、それはこの作品を削除]をクリック状態。

init: null 

次のクリック:

だから、
null 

、前のページに戻るためには、私は必要なので、最初の[戻る]ボタンをクリックすると、

init: null 
pageNumber: 3 

次のクリックに例を変更しますボタンを4回クリックすると、私は手動で各状態を取り除き、最後に私は戻ってくるからです。私はすべてのhistory.stateブラウザのボタンをクリックして直ちに前のページに行くのを削除する方法があるのだろうか?それ以外の場合は、代わりにlocalStorageを使用するようにこのコードをすべて書き直すことができると考えていますが、History APIが使用されている理由があるとも考えています。

+0

私には歴史APIの_abuse_のように聞こえますが、少なくともこれまでのところ。あなたがしなければならないことがいくつかの値を保存するだけで、実際にはサイト上のユーザーのブラウズパスに実際に接続されていない場合、localStorageはより適切に聞こえます... – CBroe

答えて

0

だから、前のページに戻るために、私は私のボタンの問題は、それはpushStateだ戻っていないようですね4回...

をクリックする必要があります。 pushStateを何回か呼び出すことで、複数の履歴エントリを作成しているので、[戻る]を何度も押す必要があります。

replaceStateではなく、pushStateである必要がありますので、新しいものを作成するのではなく、現在の履歴エントリを変更するようです。

関連する問題