【问题标题】:Sending request right before closing webpage在关闭网页之前发送请求
【发布时间】:2013-11-04 20:26:52
【问题描述】:

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

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

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

【问题讨论】:

  • 我遇到了类似的问题。为了解决这个问题,我创建了一个系统,在离开之前等待回复返回给客户,但老实说,我不知道这是否是我的请求无法到达的技术原因。不过它确实解决了问题。
  • 我找到了一个解决方案here,但是每次他试图离开页面时都会提示用户。你是这样做的吗?

标签: javascript angularjs


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-16
    • 2012-07-04
    • 2015-02-07
    • 1970-01-01
    • 1970-01-01
    • 2010-12-10
    相关资源
    最近更新 更多