在flex中停止Web服务?

时间:2010-01-12 16:03:16

标签: flex web-services

是否可以停止执行Web服务?

我有一个flex web应用程序,可以搜索具有全名和客户端ID的客户端,当按名称搜索时,usuer只会键入姓氏并且需要很长时间。

由于在客户排队等候时使用该应用程序,我希望能够停止搜索并使用其全名或ID,并避免等待结果,然后必须在结果

感谢

编辑抱歉,我没有正确解释自己,当我的意思是“网络服务”我实际上是指mx.rpc.soap.mxml.WebService,我想阻止它等待结果事件和故障事件。感谢。

2 个答案:

答案 0 :(得分:2)

实际上有一个cancel(..)方法明确用于此目的,尽管它有点埋葬。使用cancel方法将导致不调用结果和错误处理程序,并且还将删除忙碌光标等。

根据您运行搜索的方式(即单独的工作进程等),还可以通过添加cancelSearch() Web服务方法来扩展它,以终止这些工作进程并释放服务器资源等。

private var _searchToken:AsyncToken;

        public function doSearch(query:String):void
        {
            _searchToken = this.searchService.doSearch(query);
        }

        protected function doSearch_resultHandler(event:ResultEvent):void
        {
            trace("doSearch result");
            trace("TODO: Do stuff with results");
            _searchToken = null;
        }

        protected function doSearch_faultHandler(event:FaultEvent):void
        {
            trace("doSearch fault: " + event.fault);
            _searchToken = null;
        }

        public function cancelSearch():void
        {
            var searchMessageId:String = _searchToken.message.messageId;

            // Cancels the last service invocation or an invokation with the
            // specified ID. Even though the network operation may still
            // continue, no result or fault event is dispatched.
            searchService.getOperation("doSearch").cancel(searchMessageId);
            _searchToken = null;
            trace("The search was cancelled, result/fault handlers not called");

            // TODO: If your web service search method is using worker processes
            // to do a search and is likely to continue processing for some time,
            // you may want to implement a 'cancel()' method on the web service
            // to stop any search threads that may be running.
        }

答案 1 :(得分:1)

<强>更新

您可以使用disconnect()删除任何待处理的请求响应者,但它也会断开服务的连接。然后拨打initialize()

<强> /更新

您无法阻止Web服务执行,因为这超出了Flex应用程序的控制范围,但您可以限制Web服务响应的处理。例如,在应用程序上,有一个像Cancel Search这样的按钮,它将布尔值bSearchCanceled设置为true Web服务调用的结果处理程序检查bSearchCanceled;如果是真的那就回来。