我有一个有趣的问题,我需要解决,我不知道哪里可以开始。我正在编写一个MVC Web应用程序,通过表单获取记录列表,并为每个应用程序创建一个ajax调用。 ajax调用的控制器使用的资源一次只能处理一个请求。简单的解决方案是将ajax调用更改为同步,但是,这会挂起浏览器并导致糟糕的体验。队列请求MVC控制器
此外,多个用户可能会同时使用此应用程序,因此客户端的排队不起作用。
任何人有任何建议吗?
迈克
我有一个有趣的问题,我需要解决,我不知道哪里可以开始。我正在编写一个MVC Web应用程序,通过表单获取记录列表,并为每个应用程序创建一个ajax调用。 ajax调用的控制器使用的资源一次只能处理一个请求。简单的解决方案是将ajax调用更改为同步,但是,这会挂起浏览器并导致糟糕的体验。队列请求MVC控制器
此外,多个用户可能会同时使用此应用程序,因此客户端的排队不起作用。
任何人有任何建议吗?
迈克
好第一关,我的要求是不太一样的你。我的问题是我的后端数据库往往有点慢,用户的响应速度非常重要。
因此,我不得不从等式中删除数据库交互。
我的解决方案有两个主要部分:
保持数据的服务器端缓存
创建一个单独的进程中包含的所有数据库的工作,可以与服务器
单独的进程是作为由Windows服务托管的命名管道WCF服务实现的。
的基本过程的概述是:
服务本身是这样的:
回到用户的土地,有一个JavaScript的setInterval环运行:
最终的结果是,尽管缓慢的后端服务器持续一个非常敏感的用户界面。
如果您希望实现代码的任何特定部分让我知道。
谢谢!这绝对有帮助。我想我听到的是,这不会是我应该在我的Web应用程序中做的事情。我需要有一个外部服务来排队和执行。 – mcottingham
您是否考虑将控制器更改为异步? –
我没有。这是我的理解,一个异步控制器不会帮助我。这不是这种情况吗? – mcottingham
我想这取决于这里定义的资源:'使用一次只能处理一个请求的资源'。你能否更多地了解为什么一次只能处理一个,或者它是什么类型的资源? –