2

是否可以中止 flex remoteObject 调用?我尝试了以下方法,但 http 请求仍在后台加载:

var r:RemoteObject = new RemoteObject('<myDestination>');
r.source('myClass');
r.myMethod.addEventListener(ResultEvent.RESULT, myResponse);

r.myMethod(); // lets say this method takes 5 second to call

r.channelSet.disconnectAll(); // I thought this would abort the actual HTTP request but its still running

编辑

我感兴趣的是释放浏览器的 HTTP 管道,就像在 javascript 中可以在 XHR 上使用 abort 一样。

4

2 回答 2

4

您可以尝试AbstractOperationcancel()的方法。

r.getOperation("OperationName").cancel();

更新:

这就是问题所在,我调用了一个大调用,然后用户离开了视图,所以我不再需要等待响应。现在,http 请求正在阻止任何进一步的请求。对此有任何解决方案吗?

您应该在服务器端服务中进行另一项操作以停止当前服务。然后当您需要中止当前正在运行的服务时,取消操作(在 flex 上)然后通过从 flex 端调用 stop 服务来调用 stop 服务。

要在服务器端停止当前正在运行的线程,取决于您使用的服务器端。

于 2011-04-07T09:42:04.323 回答
1

请注意,通过 Operation cancel 它只会影响 Flex 客户端 - 您的响应者永远不会被调用。在服务器端,请求正常运行(消耗资源直到结束),您必须编写一些自定义代码以防止这种情况发生。

于 2011-04-07T17:36:05.643 回答