带有实时库存的静态网站

你想要一个快速的网站。同时你也需要准确的库存水平。 大多数人只能二选一:要么选择速度,要么选择准确性。但你其实不必如此。

静态网站很快。但在两次构建之间,数据会变得陈旧。 客户端获取数据(Client-side fetching)很准确,但它会增加加载动画(loading spinners)。 加载动画会破坏用户体验。

使用两层事实来源(two layers of truth)。

第一层服务于外部系统。

  • 为 Google 和 Meta 使用构建时数据。
  • 这可以停止针对已售商品的广告投放。
  • 通过同步脚本保持这些数据的实时性。

第二层服务于你的访客。

  • 将商品网格渲染为静态 HTML。
  • 假设商品均有货。
  • 在页面加载后,使用一段小脚本来修补 UI。
  • 这会移除已售商品的“购买”按钮。

这种方法消除了加载状态。页面感觉是瞬时响应的。 如果你的 API 故障,网站仍然可以运行。用户可以浏览并加入购物车。 如果商品已售罄,购物车会拒绝该请求。

购物车报错总比看到空白屏幕要好。

这种方法适用于低流量商店。它适用于艺术品或小众商品。 不要将其用于秒杀活动。高流量场景需要严格的校验。

来源:https://dev.to/dbartalos/static-site-live-inventory-two-sources-of-truth-that-dont-fight-each-other-5c0a