什么方法最适合coldfusion 8触发背景页面?

时间:2009-10-20 19:21:39

标签: coldfusion coldfusion-8

我需要触发一个页面才能开始行动,而不会干扰客户的进程。

我正在进行巨大的csv文件上传,上传后,重定向到ajax状态页面....

但是如何触发页面执行而不向最终用户显示该页面...我不想让他们看到...

我可以使用cfschedule安排任务立即发生,而不会影响客户端/最终用户的性能吗?

谢谢。

4 个答案:

答案 0 :(得分:1)

我们有一个基于用户输入创建PDF的系统。我们通过CFTHREAD抛出一个新线程来创建PDF,同时重定向到仪表板页面。只需使用CFTHREAD创建一个新线程,不要将其重新加入父页面。

您需要某种方式来通知AJAX页面(等)该过程已完成。因为我不知道你在做什么,所以我对这部分的帮助不大。但是,我们在数据库中标记了已完成的PDF。

答案 1 :(得分:0)

我通常通过将表单发布到iFrame,然后使用javascript,在iFrame完成处理时报告回父页面来执行此操作。您可以直接从iFrame访问父页面的整个DOM(包括调用函数)。

此外,如果您正在进行上传,则无法使用标准AJAX进行上传。发布到iframe是可行的方法...只需指定FORM代码的目标属性即可与iframe的name属性相匹配。

答案 2 :(得分:0)

如果您尝试在用户上传的用户不关心的文件上运行某种任务,则可以使用带有SendGatewayMessage功能的asynchronous gateway call。这虽然在上传文件时无法帮助您。正如所指出的那样,通过AJAX上传充其量只是一种破解,并且通过flash或java解决方案可以做得更好。

  

ColdFusion CFML事件网关允许   CFML代码向CFC发送消息   方法是异步的。这个事件   网关允许您启动处理   通过CFC方法无需等待   完成或返回一个值。

答案 3 :(得分:0)

我确实找到了一种方法来做到这一点.... cfthread,正在阅读很多关于cfthread的ben nadel的文章,就这样做了......

cfthread action =“run”name =“moving_#unique_session_value#” cfhttp url =“some_url”/ cfhttp / cfthread

这太好了,允许我保存客户端/最终用户的性能......

顺便说一句,谢谢大家......