利用html5的本地存储写的一个购物车
2014-05-14 20:28
239 查看
好久没有写博客园了,很多知识没有记录下来;可惜;
这几天在开发微信,也写了一个订餐平台的微网站,里面需要写一个购物车;
这里主要是把商品的部分信息以json格式保存在sessionstorage中,还有商店信息也是;
以json格式保存有什么好处呢,轻量级的传输,大概是这样吧!另外,如果我们把商品信息分开存储,就会导致有多条的sessionstorage项,那以后实现在两家商店同时购物的话,就不可能区分每家商店的商品了;
如果代码是自己写的,就有版权,这么说、对吧,是在软件工程师书上看到的;
不多说,我喜欢的是上代码;
在点击商品的时候,我们就把商品加入购物车,这个功能:其中利用了JSON.stringfy()和JSON.parse()进行转换
这是本地存储的数据格式:
View Code
最后也想解释一下为什么用这个格式的json,我用ajax技术把数据传送到后端,定义了一个函数解析这个格式的json,中间利用一个类暂时存储其中的信息,最终转换为dataset,这样数据就可以方便使用了
我希望看到这篇文章的伙伴们都可以留下您宝贵的意见,我希望加以改进函数!!谢谢交流
最近在开发微信,我也希望有人交流
作者:威华
这几天在开发微信,也写了一个订餐平台的微网站,里面需要写一个购物车;
这里主要是把商品的部分信息以json格式保存在sessionstorage中,还有商店信息也是;
以json格式保存有什么好处呢,轻量级的传输,大概是这样吧!另外,如果我们把商品信息分开存储,就会导致有多条的sessionstorage项,那以后实现在两家商店同时购物的话,就不可能区分每家商店的商品了;
如果代码是自己写的,就有版权,这么说、对吧,是在软件工程师书上看到的;
不多说,我喜欢的是上代码;
在点击商品的时候,我们就把商品加入购物车,这个功能:其中利用了JSON.stringfy()和JSON.parse()进行转换
function addgood(id, price, name) {//在界面渲染的时候已经把商品信息参数整合到自己的函数中了 var contact = new Object();//单个商品的对象,暂时介质 var goodobj = new Object();//商品对象 var memberfilter = new Array();//商品信息 memberfilter[0] = "id"; memberfilter[1] = "name"; memberfilter[2] = "sum"; memberfilter[3] = "price"; if (typeof (sessionStorage.good) == "undefined") {//此时没有商品 contact.id = parseInt(id); contact.name = name; contact.sum = 1; contact.price = parseInt(price); var good = new Array(); var jsonText = JSON.stringify(contact, memberfilter); good[0] = JSON.parse(jsonText); sessionStorage.good = JSON.stringify(good, memberfilter); } else {//有商品,要判断商品在本地是否有存储,有的话sum+1 //取数据 goodobj = JSON.parse(sessionStorage.good); var con = 0; for (var i = 0; i < goodobj.length; i++) { if (goodobj[i].id == id) { goodobj[i].sum = 1 + parseInt(goodobj[i].sum); sessionStorage.good= JSON.stringify(goodobj, memberfilter); con++; break; } } if (con == 0) {//没有该商品,新建一个进去 contact.id = parseInt(id); contact.name = name; contact.sum = 1; contact.price = parseInt(price); var jsonText = JSON.stringify(contact, memberfilter); var goolen = goodobj.length; goodobj[goolen] = JSON.parse(jsonText); sessionStorage.good= JSON.stringify(goodobj, memberfilter); } } }
这是本地存储的数据格式:
Array.prototype.del = function (n) { if (n < 0) return this; else return this.slice(0, n).concat(this.slice(n + 1, this.length)); }//本代码有参考网上的代码,出处不记得了,真是不好意思
View Code
最后也想解释一下为什么用这个格式的json,我用ajax技术把数据传送到后端,定义了一个函数解析这个格式的json,中间利用一个类暂时存储其中的信息,最终转换为dataset,这样数据就可以方便使用了
我希望看到这篇文章的伙伴们都可以留下您宝贵的意见,我希望加以改进函数!!谢谢交流
最近在开发微信,我也希望有人交流
作者:威华
相关文章推荐
- html5本地存储实现购物车
- HTML5本地储存追加利用html5的本地存储功能实现登录用户信息保存
- 利用html5的本地存储功能实现登录用户信息保存
- 利用html5的本地存储功能实现登录用户信息保存
- js 通过post方式打开页面 利用html5本地存储获取数据
- 利用HTML5开发Android(4)---HTML5本地存储之Web Storage
- HTML5 本地存储实现购物车功能
- HTML5 本地存储是一个window 属性,包括localStorage 和 sessionStorage,
- 利用HTML5的本地存储制作的个性化导航页
- 利用HTML5开发Android(7)---HTML5本地存储之Database Storage
- 一个利用sql 语句来实现分页的存储过程
- JavaScript本地存储实践(html5的localStorage和ie的userData)
- HTML5 LocalStorage 本地存储
- 利用SQL未公开的存储过程实现分页(更加好用的一个!)
- HTML5 本地存储
- html5的本地存储localstorage和web databases
- IE本地存储userdata的一个bug?
- HTML5 本地存储和内容按需加载的思路和方法
- html5-web本地存储
- 深入HTML5: HTML5 本地存储( Local Storage )的前世今生 (一)