我正在实施一个购物车网站,可以同时由多个供应商使用。
我有一个要求 当新订单进入时,订单状态应为黄色(新订单),如果任何供应商接受订单状态,则应转为蓝色(处理状态)
我对这种情况很困惑:
假设有4家供应商同时关注订单,新订单最初以黄色显示,其中一家供应商接受订单,如何将该订单的颜色更改为其他3家供应商的蓝色??
有关如何实现此类要求的任何建议??
答案 0 :(得分:2)
您需要一个服务器端解决方案,因为您需要一个持久连接才能与所有客户端保持打开状态。
您使用的解决方案取决于您的服务器设置,但此堆栈溢出帖子是一个很好的介绍:What are Long-Polling, Websockets, Server-Sent Events (SSE) and Comet?
答案 1 :(得分:0)
您需要让每个客户端轮询(连续ajax请求)服务器进行状态更改,或者让它们通过套接字连接到服务器并让服务器推送状态更改事件。
轮询是更加耗费资源但更容易实现,而套接字在服务器负载上变得容易,但需要更深入的理解和可能更多的编程。
答案 2 :(得分:0)
取决于你的应用程序,可能会有很多解决方案,但这里有一个适合我的方法:
让4个供应商通过websocket连接到您的应用服务器
当一个人接受订单时,它会通知服务器进行正确的处理,然后向页面上连接的每个人发回通知,这最终会告诉他们这个特定的订单已被X先生批准,现在应该显示为蓝色
另一方面,如果订单已经处理,你可以使用ajax轮询并每隔x秒(x beeing small)询问数据库
但又一次真的取决于您的安装
答案 3 :(得分:-1)
您可以通过执行以下操作将颜色更改为蓝色:
请求进入后,将请求包装在
中瞄准"接受"带有css规则的id,将颜色设置为蓝色。 当页面刷新其他供应商时,它将是蓝色的。