【发布时间】:2018-10-05 16:43:40
【问题描述】:
我希望在网页上实时更新订单(和状态)列表。 (MySQL)数据库中的订单通过其他进程(PHP)异步更新。
我熟悉将数据推送到页面的机制(轮询、事件源)。这不是那个。
我正在苦苦挣扎的是弄清楚在没有
的情况下要为每个用户推送哪些数据- 不必要地更新不需要的列表实体
- 不错过更新。
我的表确实有一个 DateTime 列 last_update_date,当订单发生任何更改时我会更新它。我知道 MySQL 并没有任何可以触发其他代码的事件触发器。
目前的想法:
- 在我的 JS 中,我可以跟踪最后一次请求的时间,并在每个后续请求中,询问从那时起的数据。这不起作用,因为 JS 时间很可能与服务器 MySQL 时间不匹配。
- 同样可以在用户会话中存储服务器时间。我觉得这可能在大多数情况下都有效,但根据数据库更新的时间和请求,可能会错过更改,因为数据库只存储精度为 1 秒的 DateTime。
我确信有一种更原子的方法可以做到这一点,但我只是画了一个空白。什么是合适的设计模式?
【问题讨论】:
标签: javascript php mysql atomic eventsource