Apache flex 是否可以停止ColdFusion请求?
我有一个Flex应用程序,它调用一个搜索大型文档集合的函数。根据搜索词的不同,用户可能希望停止flex的请求Apache flex 是否可以停止ColdFusion请求?,apache-flex,coldfusion,Apache Flex,Coldfusion,我有一个Flex应用程序,它调用一个搜索大型文档集合的函数。根据搜索词的不同,用户可能希望停止flex的请求 我不仅要阻止flex应用程序期待该请求,还要停止CFC请求。这可能吗?做这件事的最佳方法是什么?您可以通过或以编程方式结束请求-但这是在CF服务器端,我认为这不是您要问的问题 远程结束它。。。如果你有FusionReactor,你可以用Flex联系它,让它为你中断请求。 (您当然可以尝试在FusionReactor中结束请求,但Flex是否真的可以要求FR停止请求……如果有办法,您必须在
我不仅要阻止flex应用程序期待该请求,还要停止CFC请求。这可能吗?做这件事的最佳方法是什么?您可以通过
或
以编程方式结束请求-但这是在CF服务器端,我认为这不是您要问的问题
远程结束它。。。如果你有FusionReactor,你可以用Flex联系它,让它为你中断请求。
(您当然可以尝试在FusionReactor中结束请求,但Flex是否真的可以要求FR停止请求……如果有办法,您必须在FR邮件列表中询问。)
另一种可能的解决方案是尝试并设计搜索,使其能够在多个请求上工作,但其可行性将取决于您正在搜索的内容。如果您使用的是ColdFusion 8,则可以使用
标记。您可以在自己的线程上生成搜索进程,然后根据需要使用远程调用终止搜索线程
- 对于cfthread
若要抛出该标志,请添加一个abort方法,该方法采用要中止的线程的名称,并具有足够的安全性,以确保第三方不能仅仅开始终止线程。若要添加到Ben Doom的答案中,我将包括一些实现该方法的示例代码。有多种命名、组织和调用下面代码的方法和方法,但希望它能有所帮助 在请求启动期间的某个时刻,将有关进程的信息存储在共享范围中,并向客户端返回一个ID。以下是可用于页面或远程请求的示例函数
<cffunction name="createProcess" output="false">
<cfset var id = createUUID()>
<cfset application.processInfo[id] = {
progress = 0,
kill = false
}>
<cfreturn id />
</cffunction>
然后,客户端可以通过轮询服务器来检查进度,或者提交终止进程的请求
<cffunction name="getProcessProgress" output="false">
<cfargument name="processID" required="true">
<cfreturn application.processInfo[arguments.processID].progress />
</cffunction>
<cffunction name="killProcess" output="false">
<cfargument name="processID" required="true">
<cfset application.processInfo[arguments.processID].kill = true />
</cffunction>
然后,所讨论的实际服务器端进程可以点击一个函数,例如在循环期间,检查它是否应该中止处理并根据需要清理任何工作
<cffunction name="shouldKillProcess" output="false">
<cfargument name="processID" required="true">
<cfreturn application.processInfo[arguments.processID].kill />
</cffunction>
线程在一个请求中工作,而不是跨多个请求工作?