是否可以中止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一样。
答案 0 :(得分:4)
您可以尝试AbstractOperation的cancel()
方法。
r.getOperation("OperationName").cancel();
<强>更新强>
这就是问题,我调用一个大调用然后用户离开了视图,所以我不需要等待响应了。现在,http请求阻止了任何进一步的请求。有解决方案吗?
您应该在服务器端服务中进行另一项操作以停止当前服务。然后当你需要中止当前正在运行的服务时,取消操作(在flex上),然后通过从flex端调用stop service来调用stop服务。
在服务器端停止当前运行的线程,取决于你使用的服务器端。
答案 1 :(得分:1)
请注意,通过取消操作,它只会影响Flex客户端 - 您的响应者永远不会被调用。在服务器端,请求正常运行(消耗资源直到结束),并且您必须编写一些自定义代码以防止这种情况发生。