0

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

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

但是我如何在不向最终用户显示该页面的情况下触发要执行的页面......我不想让他们看到......

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

谢谢你。

4

4 回答 4

1

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

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

于 2009-10-20T19:50:12.700 回答
0

我通常通过将表单发布到 iFrame 来做到这一点,然后使用 javascript 在 iF​​rame 完成处理后向父页面报告。您可以直接从 iFrame 访问父页面的整个 DOM(包括调用函数)。

此外,如果您正在上传,则无法使用标准 AJAX 进行上传。发布到 iframe 是要走的路...只需指定 FORM 标签的目标属性以匹配 iframe 的 name 属性。

于 2009-10-20T19:25:36.203 回答
0

如果您尝试对用户不关心的用户上传的文件运行某种任务,则可以使用带有 SendGatewayMessage 函数的异步网关调用。但是,这在上传文件时对您没有帮助。正如所指出的那样,通过 AJAX 上传充其量是一种 hack,最好通过 flash 或 java 解决方案完成。

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

于 2009-10-20T19:40:03.437 回答
0

我确实找到了一种方法来做到这一点......cfthread,正在阅读本纳德关于cfthread的许多文章,是不是这样......

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

这太棒了,让我节省了客户端/最终用户的性能......

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

于 2009-10-20T19:50:44.493 回答