如果要将物品加入购物车,要记录物品id,数量,总价,并将这些临时数据传递到数据库,保存起来,然后,从数据库获取加入购物车商品的数据,显示在购物车页面上,这里我们认为加入数据库的数据是临时数据.所以适合保存在内存中或者cookie中
0.逻辑注意点
将用户加入购物车的数据存储起来
1.购物车的数据需要和当前登录的用户关联起来;
2.一般情况下购物车的数据可以通过cookie/Redis来存储;
3.由于用户不是唯一的,建议用用户的Id来查询用户
4.一定要注意必须先登录才能通过session获取用户名
5.Redis链接地址错误
要用ipconfig -all查询外界访问本机的ip地址,默认接口是6379
6.Redis存储哈希数据
image.png
image.png
由于一个用户的购物车对应一个哈希表,哈希表就相当于字典,如果key不可以重复,所以如果是同一个商品,第二种方法能够确保同意商品只能加入购物车一次
1.编程技巧
对于JS代码,复杂的情况下,先在操作元素下面写,最后再移动到一个文件中去
2.新知识点
1.ajax:
image.png
2.beego返回JSON格式
image.png
3.url
http://hemin.cn/jq/jQuery.ajax.html
4.bugs
1.ajax方法调用不正确
image.png
image.png
2.a标签添加点击事件重复跳转
image.png
image.png
5.语法注意点
image.png会话传递过来的数据是interface{}类型,要断言强制转化为字符串类型,因为在数据库中该字段是字符串类型
一.Ajax数据交互
1.监听添加购物车按钮的点击
image.png
2.添加埋点传递商品Id
image.png
3.修改a标签
image.png
4.添加route
image.png
5.Ajax GET方法传值
image.png
会将对象转换为url后面的参数,这就是ajax传值
二.Redis存储数据
1.获取传递过来的数据
2.创建传递数据的字典
3.判断用户登录是否成功(会话请求成功)
4.失败:
设置回传状态码,回传错误提示
5.成功:
5.1查询用户
5.2建立Redis链接
5.3关闭链接
5.4存储数据
5.5存储失败:设置回传状态码和回传错误提示
5.6存储成功:求当前用户键对应的值的个数
5.7将回传的字符串强制转换为整数
5.8.设置回传状态码,回传错误提示
5.9设置回传该用户购物车中的商品数目
6.回传字典
7.将该字典强制转换为JSON格式数据
8.设置路由
9.页面显示数据
image.png
image.png
image.png
image.png image.png
网友评论