Apache flex 停止flex中的web服务?

Apache flex 停止flex中的web服务?,apache-flex,web-services,Apache Flex,Web Services,是否可以停止web服务的执行 我有一个flex web应用程序,它使用全名和客户id搜索客户机,当按名称搜索时,有时使用者只键入姓氏,这需要很长时间 由于该应用程序是在客户排队等候时使用的,因此我希望能够停止搜索并使用他们的全名或id,避免等待结果,然后在结果中手动搜索用户 谢谢 编辑:对不起,我没有正确解释我自己,当我指的是“web服务”时,我实际上指的是mx.rpc.soap.mxml.WebService,我想阻止它等待结果事件和错误事件。谢谢。更新 您可以使用disconnect()删除

是否可以停止web服务的执行

我有一个flex web应用程序,它使用全名和客户id搜索客户机,当按名称搜索时,有时使用者只键入姓氏,这需要很长时间

由于该应用程序是在客户排队等候时使用的,因此我希望能够停止搜索并使用他们的全名或id,避免等待结果,然后在结果中手动搜索用户

谢谢


编辑:对不起,我没有正确解释我自己,当我指的是“web服务”时,我实际上指的是mx.rpc.soap.mxml.WebService,我想阻止它等待结果事件和错误事件。谢谢。

更新

您可以使用
disconnect()
删除任何挂起的请求响应程序,但它也会断开服务的连接。然后调用
initialize()

/Update

您无法停止web服务的执行,因为这超出了Flex应用程序的控制范围,但您可以限制web服务响应的处理。例如,在应用程序上,有一个类似
取消搜索
的按钮,它将布尔值
b搜索取消
设置为true。

web服务调用的结果处理程序检查
bsearchCancelled
;如果为true,则返回。

实际上有一个明确用于此目的的
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.
        }

为什么按姓氏搜索要花这么长时间?不是索引了吗?客户为什么要排队?看起来你在试图解决一个不应该存在的问题。它被索引了,这需要很长时间,因为服务器无法承担负载,并且有大量记录,人们排队等待,因为这是组织的工作方式,是的,它不应该存在,但到目前为止,它确实存在,而且必须解决。谢谢,希望你有答案