我需要触发一个页面才能开始行动,而不会干扰客户的进程。
我正在进行巨大的csv文件上传,上传后,重定向到ajax状态页面....
但是如何触发页面执行而不向最终用户显示该页面...我不想让他们看到...
我可以使用cfschedule安排任务立即发生,而不会影响客户端/最终用户的性能吗?
谢谢。
答案 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
这太好了,允许我保存客户端/最终用户的性能......
顺便说一句,谢谢大家......