中止RemoteObject调用

时间:2011-04-07 08:51:48

标签: flex actionscript-3 httprequest remoteobject

是否可以中止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 Pipeline,就像在javascript中你可以在XHR上使用abort一样。

2 个答案:

答案 0 :(得分:4)

您可以尝试AbstractOperationcancel()方法。

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

<强>更新

  

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

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

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

答案 1 :(得分:1)

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