我正在调查我们是否使用更新客户等待屏幕的最佳方法。
目前,我们有一个系统,客户可以到达,买票,坐等等。操作员有一个显示等候票的屏幕。他们可以从应用程序“调用”这些票据,然后从队列中获取票据并进行处理。
运行它的技术是MVC应用程序和剃刀视图。运营商有一个页面,上面有一个表格,显示等候票。
我们有一个名为refreshtable()的jquery函数;从setInterval运行。间隔是3秒。 refreshtable函数使用jquery ajax来调用返回最新数据集的控制器操作。然后,ajax的成功操作将父div的html设置为新表数据。数据来自SQL。我们已经将返回数据的查询配对,并且非常高兴它是有效的。
我们最多有10个“操作员”,此屏幕不断更新。当门票进入并且不断被呼叫时,它需要经常更新。减缓刷新将导致运营商之间的混淆。
我们的问题在于操作员pc或网络服务器都非常强大。最终,我们会砍掉这批并装上一套新的装备,但目前这不是一个选项。 我可以考虑使用其他客户端技术吗?即淘汰赛还是Angular?
欢迎所有意见/观点。
答案 0 :(得分:0)
其他客户端技术(如Knockout或Angular)对您没有任何实际用途,因为它们无法解决您问题的核心。您正在寻找的是客户端和服务器之间的实时通信,基本上不能通过HTTP获得。
这里有一个很好的问答,描述了可用于所需通信类型的机制 Is there a real server push over http?
所以最后,为了解决您的问题,您将需要使用类似websockets的内容,但如果您的硬件/托管环境不是最新的,那么您可能无法完成这项工作。另一种选择是使用某种桌面方法,如WinForms / WPF,这将为您提供更大的灵活性,但当然这意味着大量重写。
答案 1 :(得分:0)
使用SignalR更新表而不刷新屏幕。 SignalR