2017-12-25 16 views
2

私は自分の頭に小さなバッジを実装して、ユーザーがカート内のアイテムの数を示しています。asp.netコアのヘッダーでバッジを処理するベストプラクティスは何ですか?

これは私が考えている方法です:ユーザのログイン時にバッジの値を設定してからユーザーが自分のカートに追加/削除したときに増分/減分するだけです。

私はこのように私のインデックスページにjqueryの内の値を設定してみました:

function loadCartBadgeVal(id) { 
$.getJSON(`/Cart/GetCartCount?customerId=${id}`, 
    function (data) { 
     $("#cart-badge").text('' + data); 
    }); 
} 

これは動作しますが、私は別のページにリダイレクトするとき、私のバッジの値は0にリセットされます。..私のバッジを部分図で実装されていますこのように:

<span class="badge badge-info" id="cart-badge"></span> 
+0

は、あなたが 'loadCartBadgeVal'を呼んでいますリダイレクト先のページでは、すべてのページに値をロードする必要があります。 –

+0

これは、毎回データベース呼び出しを行う必要があることを意味しますか?それを行う良い方法はありますか? –

+1

あなたはセッション、クッキー、localstorageなどでそれを保存するのが良い – plonknimbuzz

答えて

2

あなたはカウントし、どこでもあなたのサイト/アプリのそれを示しカートのアイテムを保存するためにlocalStorageを使用することができます。

次のスニペットは、現在のドメインのローカルStorageオブジェクトにアクセスし、Storage.setItem()を使用してデータ項目を追加します。

localStorage.setItem('cartCount', 1); 

次のようにのlocalStorage項目を読み込むための構文は次のとおりです。

var count= localStorage.getItem("cartCount"); 

次のようにのlocalStorage項目を削除するための構文は次のとおりです。

localStorage.removeItem("cartCount"); 
+0

答えてくれてありがとうございます@ムハンマド。これはまったく新しい質問かもしれませんが、なぜlocalStorageをSession変数で使うのでしょうか? –

+1

'localStorage'と' sessionStorage'はどちらも 'Storage'を拡張しています。意図された 'non-persistence 'の' sessionStorage'を除いて、それらの間に違いはありません。つまり、 'localStorage'に格納されたデータは明示的に削除されるまで存続します。加えられた変更は保存され、現時点での将来の訪問にも利用可能です。この[post](https://stackoverflow.com/questions/19867599/what-is-the-difference-between-localstorage-sessionstorage-session-and-cookies)@JKirkを参照してください。 –

関連する問題