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

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

只要我不重新加载页面,这就很好用。我的问题是,jquery 中缓存此数据的最佳方法是什么,以便我可以重新加载页面、将页面保留 30 分钟以及您可以想出的其他内容。是向用户浏览器添加 cookie 还是 jquery 有其他方法来处理这个问题?感谢您的帮助。顺便问一下,如果 cookie 是解决方案,那么如果用户不接受 cookie 会发生什么?

编辑

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

最终编辑

好的,那我就用cookies吧。现在我如何将 JSON 数据存储在 cookie 中?正如您在上面的代码行中看到的那样,我可能有许多具有多个值的产品。像这样:

$("#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

有帮助吗?

解决方案

jQuery 是 JavaScript。

这意味着您被限制在当前页面视图内。

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

  • 使用Sessions,但你需要服务器端语言,如php、asp、ruby等。
  • 存储cookies(如果用户不接受你什么也做不了..)
  • 使用 HTML5 本地存储, ,但浏览器支持有限
  • 以上的组合。

其他提示

缓存将是一个解决方案,但请记住,每一个新的页面加载存储在cookie中的信息也被发送到服务器。

如果用户不接受cookie。这都将无法正常工作。

一个好得多的解决方案将在未来与 HTML5网页存储等我们。

一个完整的页面负载本身将“重置”你的JavaScript。该浏览器将不会持有页面加载之间的JavaScript状态。你的选择是创建一个cookie或保存在服务器状态信息。这是一个很值得无国籍网络的经典问题,它只是不会记得。

我建议使用一个cookie连同存储在服务器端这个缓存。

您必须使用cookie和如果您想在服务器端解决方案使用localStorage的我会用Lawnchair去。

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

这是非常甜蜜的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top