jquery basket如何保存数据

时间:2010-11-18 13:47:12

标签: jquery cookies webshop

我正在创建一个小型网上商店。当我将产品添加到我的购物篮时,我只需将数据对象添加到div li:

$("#ArticlesHolder").data('15', {name:'testname', nr:'4', price:'400', articlenr:'klr441234'});

只要我不重新加载页面,这就行得很好。我的问题是,在jquery中最好的方法是缓存这些数据,这样我就可以重新加载页面,让页面保持30分钟以及其他你能想到的东西。是向用户浏览器添加cookie还是jquery有其他方法来处理这个问题?感谢任何帮助。顺便说一句,如果cookie是解决方案,如果用户不接受cookie会发生什么?

修改

尝试使用cookie是一个很好的解决方案,如果用户dosnt接受,那么对web服务进行ajax调用以处理服务器端并返回json数据?

最终编辑

好的,我会使用cookies。现在我如何在cookie中存储JSON数据?正如你可以在上面的代码行中我可能有许多具有多个值的产品。像这样:

$("#ArticlesHolder").data('15', {name:'testname', nr:'4', price:'400',articlenr:'345345'});
$("#ArticlesHolder").data('25', {name:'name2', nr:'1', price:'100', articlenr:'kltt444'});
$("#ArticlesHolder").data('37', {name:'name3', nr:'14', price:'60', articlenr:'1235555'});

我需要循环每个数据字段并将其保存在新的JSON数据类型中。有谁知道这是怎么做的?

最诚挚的问候 Marthin

4 个答案:

答案 0 :(得分:1)

jQuery是javascript。

这意味着您在当前页面视图中受限。

要将数据保存到网站,您可以

  • 使用会话,但您需要服务器端语言,如php,asp,ruby等。
  • 存储Cookie(,如果用户不接受您无能为力......
  • 使用HTML5 localStorage,但浏览器支持有限
  • 以上的组合。

答案 1 :(得分:1)

Cookie是一种解决方案,但请记住,每次加载新页面时,存储在Cookie中的信息也会发送到服务器。

如果用户不接受cookie。这根本不起作用。

将来HTML5 web storage将会有更好的解决方案等待我们。

答案 2 :(得分:0)

整页加载本质上会“重置”您的javascript。浏览器不会在页面加载之间保持javascript状态。您可以选择创建cookie或将此信息保存在服务器状态。这几乎是无状态网络的经典问题,它不会记得。

我建议将cookie与在服务器端存储此缓存一起使用。

答案 3 :(得分:0)

您必须使用cookie和服务器端解决方案如果您希望使用localStorage,我会选择Lawnchair。

http://blog.westcoastlogic.com/lawnchair/

非常好。