2017-12-25 2 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); 

다음과 같이 로컬 스토리지 항목을 읽기위한 구문은 다음과 같습니다

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

다음과 같이 로컬 스토리지 항목을 제거하는 구문은 다음과 같습니다

localStorage.removeItem("cartCount"); 
+0

답변 해 주셔서 감사합니다. @Muhammad. 이것은 완전히 새로운 질문 일 수도 있지만 localStorage가 Sessionvariable보다 큰 이유는 무엇입니까? –

+1

음,'localStorage'와'sessionStorage' 둘 다'Storage'를 확장합니다. "sessionstorage"의 의도 된 "non-persistence"를 제외하고는 그것들간에 차이가 없다. 즉,'localStorage'에 저장된 데이터는 명시 적으로 삭제 될 때까지 지속됩니다. 변경 사항은 저장되어 현재 및 미래의 모든 사이트 방문에 사용 가능합니다. 이 [post] (https://stackoverflow.com/questions/19867599/what-is-the-difference-between-localstorage-sessionstorage-session-and-cookies) @ J.Kirk를 참조하십시오. –

관련 문제