我有一个 Flex Web 应用程序,它使用 BlazeDS 与服务器进行单通道端点(非安全)通信。
一切运行良好,我几乎在任何地方都使用 BlazeDS 向服务器和数据库发送和检索数据。现在我正在编写一些新代码来从服务器检索数据,但是服务器必须首先处理这些数据,这需要一些时间(比如 5 到 30 分钟,具体取决于请求)。
到目前为止,我的设计模式一直是向用户显示一个忙碌的光标并禁用主应用程序(Flex 默认情况下会在禁用时模糊应用程序)。这通常在通信完成时持续一两秒。但是,现在通信需要很长时间才能完成,我希望能够让用户继续使用该应用程序,即使来自服务器的进程尚未返回。
所以我想做的不是禁用主应用程序,这样用户就可以在他/她等待数据返回时与之交互。我担心的问题是如果用户在这段时间内使用应用程序向服务器发送另一个进程(例如在第一个进程返回之前)——这会导致问题吗?也就是说,BlazeDS 是否足够聪明,可以知道通道正忙,因此会自动将请求排队?例如,BlazeDS 是否会等到第一个请求返回后再发送第二个或第三个等?
还是我必须以某种方式手动控制此通信以确保它以串行方式发生?如果是这样,是否有任何设计模式来处理这个问题?
或者,BlazeDS 可以在第一个请求返回之前发送并返回第二个请求吗?
非常感谢任何建议。我正在寻找避免用户盯着不可用的应用程序 5 到 30 分钟等待数据返回的方法。繁忙的游标很好,因为它显示数据尚未返回,但特别是禁用的主应用程序(无论它是否模糊)是一个问题。
更新:
这里我说的是同时调用不同的方法,而不是同一个方法。所以如果我有两个方法,我想调用第一个方法,当它等待返回时,调用第二个或第三个方法,在第一个方法返回之前(最终)安全返回。BlazeDS 支持吗?