Apache flex 停止flex中的web服务?
是否可以停止web服务的执行 我有一个flex web应用程序,它使用全名和客户id搜索客户机,当按名称搜索时,有时使用者只键入姓氏,这需要很长时间 由于该应用程序是在客户排队等候时使用的,因此我希望能够停止搜索并使用他们的全名或id,避免等待结果,然后在结果中手动搜索用户 谢谢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服务”时,我实际上指的是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.
}
为什么按姓氏搜索要花这么长时间?不是索引了吗?客户为什么要排队?看起来你在试图解决一个不应该存在的问题。它被索引了,这需要很长时间,因为服务器无法承担负载,并且有大量记录,人们排队等待,因为这是组织的工作方式,是的,它不应该存在,但到目前为止,它确实存在,而且必须解决。谢谢,希望你有答案