집에서는 출산 휴가와 함께 지루하고 이전 프로젝트를보고, 이전에 쓴 쇼핑 카트가 데이터베이스에 원칙적으로 구현되었지만 데이터베이스와 상호 작용해야한다는 것을 알았습니다. 능률. 갑자기 HTML5 로컬 스토리지를 사용할 수 있다면 프로그램 효율성이 크게 향상됩니다. 물론 HTML5 로컬 스토리지에는 각 브라우저의 호환성과 스토리지 데이터의 크기 (NKB)가 포함됩니다. 여기에서 설명해야 할 것은 다음과 같습니다. 작은 마이크로 마이크 프로젝트를 수행한다면 HTML5 로컬 스토리지 절차를 사용하여 쇼핑 카트를 달성 할 수 있습니다!
이 섹션은 쇼핑 자동차의 기능을 실현하기위한 HTML5 로컬 스토리지의 기능에 대해 설명합니다!
설명해야합니다. 다른 사람의 블로그의 이전 부분 : HTML5 로컬 스토리지 사용법,이 섹션은 이전 섹션의 지식을 사용하여 쇼핑 카트를 실현합니다!
먼저 일반적인 사고를 설명하십시오.제품 테이블에서 제품의 ID는 여기에서 제품의 ID를 JSON의 핵심 값으로 사용하여 장바구니 데이터를 저장합니다.
구체적인 예는 다음과 같습니다.
'쇼핑 카트에 가입'을 클릭하면 실행 코드는 다음과 같습니다.
var pid (#hidpid); , pcolor : var batstring = json.stringify (var i = 0; i <localstorage.length; == keyname) {localStorage.removeItem (keyname);}} localStorage.setItem (bat+pid, batstring);
일반적인 설명에 따라 :
PID : 상품 ID
색상 : 제품 색상
Num2 : 상품 수
박쥐 : JSON 대상
BATSTRING : 문자열이 JSON 객체로 변환되었습니다
루프의 경우 : 기존 로컬 스토리지가 삭제되고 최신 로컬 스토리지가 다시 설정되면 동일한 이름의 주요 값이 삭제 될 수 있습니다. 오래된 것들.
마지막으로, Dynamic Storage 인 So -Called Dynamic은 로컬 스토리지 키 값과 제품 ID의 조합입니다. 다시 말해, 다른 주요 값은 N JSON 문자열로 저장됩니다. 마지막으로, 우리는이 n 다른 줄을 분석하면되며 완전한 쇼핑 카트를 얻을 것입니다!
hee hee, 간단합니다!
그렇다면이 n JSON 스트링을 어떻게 가로 질러 갈 수 있습니까? 다음과 같이 :
쇼핑 자동차로드 페이지 :
$ (function () {for (var i = 0; i <localStorage.length; i ++) {var localValue = localStorage.getItem (localStorage.key (i)); var key = localStorage. 키 (i); (key! = key.indexof (bat)> = $. + PID + 제품 수량 : + NUM + 제품 색상 : + 색상);}}});
일반적인 설명 :
모든 로컬 스토리지를 가로 지르며 키 값에는 BAT와 다른 로컬 스토리지에서 BAT 서브 믹스 컷이 포함되어 있어야합니다. <다른 시스템과 로컬 스토리지가 충돌하지 않으므로 요청에는 BAT가 포함되어야합니다.
JSON 문자열을 JSON 객체로 변환하십시오
제품 ID, 제품 수, 제품의 색상을 입력하십시오.
제품 ID, 제품의 색상 및 제품 수를 사용하면 JS 또는 AJAX를 사용하여 현지에서 보관 한 쇼핑 카트를로드 할 수 있습니다. 특정 로딩 방법은 다음과 같습니다.
$.ajax(...........)
또는:
JS 스티칭 HTML
여기 : 데모가 없습니다.
자, 현재 전체 HTML5 로컬 스토리지도 완료됩니다.
이 블로그를 계속 개선하십시오
위에서 언급 한 것은 Ajax 또는 JS 스티칭을 사용하여 로딩 기능을 완료해야합니다.
JS 코드는 다음과 같습니다.
$ (function () {varility = new array (); for (var i = 0; i <localStorage.length; i ++) {var key = localStorage.key (i); var localValue = localStorage. getItem (key) if! = bat! coool = obj .pcolor; = {carry}; $ .post (/home/getcarinfo, bat, function (#buycar) .html (data);}; 데이터) {var arytr = arytr = data.split ( '_') .html ( '<p> arystr [0] +'yuan </p>. <pan> (총 ' + arystr [1] +',화물없이) </span> ')});});
컨트롤러 부분 :
[httppost] public string getCarinfo (사전 <문자열, 문자열> [] Carary) {UsercarModel Model = New UserCarmodel (); ] [] Carry) {UserCarmodel Model = New UserCarmodel (); GetCarinfo (Carary, 1);}.
모델 섹션
공개 문자열 getCarinfo (Dictionary <String, String> [] Carary, int i = 0) {System.Text.StringBuilder SB = TextBuilder (If (i == 0) { / / / / / / / / / / / / / / / / / / / / / / / / / / / / / if (carry! = null && length> 0) {foreach (var it it in item) {string pid [pid]; String PCOLOR = PCOLOR]; '> <div class ='themb '> <img src =' + picpath + @ ' /> < /div> <div class ='desc clear-both '> <p> + ame + @ e < /p> < 작은> 색상 분류 : + pcolor + @</small> <span> + convert.todouble (productmol.shopprice) .tostring (0.00) + @</span> <div class = 'ctrl-div'> <div class = 'jian'> </div> <div class = 'num'> + num + @</div> <div class = 'jia'> </div> </div> </div > </li>);} sb.append (</ul>);} else {sb.append (<ul> <li onclick = 'gobuy2 ()'> li> <br/> </ul>); }} else {// (Carary! = null && length> 0)의 총 금액을 계산합니다. ProductMol = bll.getModel (convert.toxt32 (PID)); sum + = convertod allowance (productMol.shoprice) * convert.to double (num);} sb.append (sum.tostring + _ + carry.length);} 반환 sb.tostring ();}
효과 맵은 다음과 같습니다.
위는이 기사의 모든 내용입니다.