2

我正在使用 angularjs 开发一个电子商务网站。每当用户从购物车中添加、更改数量或删除产品时,都会更新本地产品数组(我没有推送到服务器,因为这意味着很多请求)并且我听取了window.onbeforeunload 将更改推送到服务器。它在我的本地机器上运行良好。但是当我在服务器上测试它时,它并没有按预期工作。

还有另一种方法可以做到这一点吗?也许在离开页面之前说等待一秒钟以发送成功的请求然后离开?还是每次更新购物车时我都必须推送更改..

我还想将管理购物车留给服务器,这意味着我无法操作 cookie。因为在服务器上,我正在使用处理购物车的外部类,例如为每个项目创建加密的项目标识符。

4

1 回答 1

0

我找到了一个解决方案,不确定它是否是最佳实践,但在许多情况下对其进行了测试。它似乎工作得很好......

  1. 当用户修改购物车时,使用 javascript(不需要请求)将项目保存在 cookie 中作为 json 数组。
  2. 在每次请求之前,我都会检查 cookie 中是否保存了项目以执行以下操作:销毁购物车。湾。检索和 json_decode 保存在 cookie 中的项目。C。将这些新物品放入空购物车。d。取消设置此 cookie。

这种方法的好处是,没有任何开销请求将本地更改推送到服务器但是它使用服务器上的购物车将项目保存在不同的 cookie 中看起来很愚蠢,我可能会用我自己的购物车类重构它共享相同的项目 cookie....

于 2013-10-25T21:40:45.800 回答