Cookies的使用之购物车的实现
Cookies的使用之购物车实现
最近学习了JSON对象之后,发现Cookies的使用更加的灵活方便了。ps:JSON不是JS。可以这么理解,JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。
首先为了方便,我们可以先写两个方法来简化我们对Cookies的操作:
//设置cookie
function setCookie(cname, cvalue) {
document.cookie = cname + "=" + cvalue + ";";
}
// 获取指定名字的cookie值
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(";");
for (var i = ; i < ca.length; i++) {
var c = ca[i].trim();
if (c.indexOf(name) == ) {
return c.substring(name.length, c.length);
}
}
return "";
}
好了,现在可以直接用上面的方法设置、获取Cookies的值了。
接下来需要知道我们的商品都有什么属性:
我这里有一条内容,这是最简单的商品了。假设这就是我们的商品,他有只有名称,单价两个信息,如何将它们放进Cookies呢?
Cookies只能接收文本内容,也就是一个字符串,如果将这两个信息分开写进Cookies,那用起来可就麻烦了。JSON就很好的解决了这个问题,甚至可以存放数组内容!
部分代码如下:
var product = {
"name": nName,
"price": nPrice,
"count": count
}
"name"用来存储商品名称, "price"用来存储商品单价, "count"用来存储商品数量。
var cartArr = []; //判断Cookies中是否已有cartInfo信息
if(getCookie("cartInfo")!="" && getCookie("cartInfo")!="[]"){
cartArr=JSON.parse(getCookie("cartInfo"));
}
isBuy(cartArr,product);
setCookie("cartInfo", JSON.stringify(cartArr)); // 判断是否已经添加过购物车
function isBuy(cartArr, product) {
for (var i in cartArr) {
if (cartArr[i].name == product.name) {
cartArr[i].count += 1;
return;
}
}
cartArr.push(product);
}
product是我们添加进购物车的商品对象,除此之外我们还需要一个cart数组来存放我们的product对象,因为我们的购物车可不只有一件商品。
上面代码中黄色部分是用到的JSON对象中的两个重要方法。JSON.stringify()的主要作用就是将我们的对象类型转换为字符串类型 ,通过他我们就可以将对象类型甚至是数组类型(数组也是对象)放进Cookies中了。JSON.parse()方式则是将字符串类型转换成对象类型,通过他我们可以将从Cookies中取出来的字符串类型还原为对象。有了这两个方法操作Cookies简直不能太方便!
上面的isBuy()方法的作用是检测cart数组中是否已经存在了当前选中商品,如果有则只需要在商品属性中将count+1即可,如果没有则将整个商品(product对象)push进我们的数组中。
下面是从Cookies中取出购物车信息的代码:
var pro = getCookie("cartInfo");
var cart = JSON.parse(pro);
取出来的pro是字符串类型,经过转换后的cart已经是数组类型了。拿到cart数组相信接下来的工作将简单的多。
以上就是简单的添加购物车的实现。如果有疑问可以留言,有问题希望看到及时指正,谢谢!
Cookies的使用之购物车的实现的更多相关文章
- Django项目纪要
开发流程 公司高层 项目立项 | 市场部门 需求分析-->需求分析说明书, 需求规格说明书 | 产品部门 产品原型-->产品 UI 前端 后端 测试 移动端 | |------------ ...
- ASP.NET知识总结(9.使用Cookies实现购物车)
ListInfo.aspx向购物车的添加商品的方法 private void GouWu(string name, double price, string id) { //往购物车中添加商品 Htt ...
- cookies保存购物车数据的编码问题(pickle和base64)
在保存cookies时,如果存在着中文字符,cookies保存会报错.所以需要对数据进行编码. 通常cookies的保存都是以Base64来保存.所以先要对数据编码成bytes,再编码成base64字 ...
- 使用MongoDB和JSP实现一个简单的购物车系统
目录 1 问题描述 2 解决方案 2.1 实现功能 2.2 最终运行效果图 2.3 系统功能框架示意图 2.4 有关MongoDB简介及系统环境配置 2.5 核心功能代码讲解 ...
- 深入理解cookies
HTTP cookies,通常又称作"cookies",已经存在了很长时间,但是仍旧没有被予以充分的理解.首要的问题是存在了诸多误区,认为cookies是后门程序或病毒,或压根不知 ...
- Cookies的作用
Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密).Cookies就是服务器暂存放在你的电脑里的资料(.tx ...
- asp.net 之 购物车
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
- [转]一步一步asp.net_购物车订单与支付宝
本文转自:http://www.cnblogs.com/mysweet/archive/2012/05/19/2508534.html 最近这几天很忙,一边忙着准备一堆课程设计(8门专业课.....伤 ...
- HTML5 Web Storage -- 让Cookies看起来如此古老
转载 原文 在此两部分组成的系列中,我们将来看看HTML5 规范中最棒而且最有趣的特性之一的Web Storage.我们将看看Web Storage 和 Cookies的历史,并从考虑以下几点: *C ...
随机推荐
- jsp:include动作功能
jsp:plugin动作:连接客户端的Applet或Bean插件 jsp:useBean动作:应用javaBean组件 jsp:setProperty动作:设置javaBean属性 jsp:getPr ...
- Arrays和String单元测试(课下作业,选做)
在IDEA中以TDD的方式对String类和Arrays类进行学习- 测试相关方法的正常,错误和边界情况 - String类 - charAt - split - Arrays类 - sort - b ...
- easyui Datagrid 表格高度计算及自适应页面的实现
因为页面上既要计算表格的高度,又要自适应浏览器大小,之前都都采用固定表格高度,这样就会导致不同的分辨率电脑上看起来表格高矮不一, 所以采用了计算网页高度和其他div 的高度之差作为表格的初始高度: H ...
- 第八周博客作业<西北师范大学|李晓婷>
1.助教博客链接:https://home.cnblogs.com/u/lxt-/ 2.作业要求链接:http://www.cnblogs.com/nwnu-daizh/p/10687492.html ...
- 2018-2019-2 网络对抗技术 20165232 Exp2 后门原理与实践
2018-2019-2 网络对抗技术 20165232 Exp2 后门原理与实践 1. 后门原理与实践实验说明及预备知识 一.实验说明 任务一:使用netcat获取主机操作Shell,cron启动 ( ...
- VIM编辑器使用
- Luogu CF451E Devu and Flowers 题解报告
题目传送门 [题目大意] 有n种颜色的花,第i种颜色的花有a[i]朵,从这些花中选m朵出来,问有多少种方案?答案对109+7取模 [思路分析] 这是一个多重集的组合数问题,答案就是:$$C_{n+m- ...
- CentOS下TensorFlow安装命令
安装扩展源:sudo yum -y install epel-release 安装python-pip模块:sudo yum install python-pip 直接把whl文件download下来 ...
- 适合高要求应用的高性能MEMS IMU解决方案
对于复杂且高动态惯性配置的MEMS IMU应用,评估功能时需要考虑许多属性.在设计周期早期评估这些属性优于追逐开放性成果,从而实现“尽可能精确”.ADI近期举行的在线研讨会[适合高要求应用的高性能ME ...
- 2018-2019 网络对抗技术 20165231 Exp4 恶意代码分析
实验目标 1.是监控你自己系统的运行状态,看有没有可疑的程序在运行. 2.是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工具尽量使用原生指令或sysinternals,systrac ...