当用户点击一个按钮时,我需要执行一个耗时的任务。基本上,我会在每个帖子上做一些处理,向很多人发送请求到远程服务器。如何在后台处理请求并稍后报告结果?
用户不会立即需要结果,所以我可以在后台运行它。但是我需要能够告诉用户当他们再次访问该页面时,任务是否完成(以及结果如果完成)。另外,我不希望他们能够在第一个仍在运行时启动另一个相同任务的实例(通过单击按钮)。
任何方式我可以做到以上所有?
编辑:我正在开发的WordPress。它被贴上标签,但我想我应该在问题中提到它。
当用户点击一个按钮时,我需要执行一个耗时的任务。基本上,我会在每个帖子上做一些处理,向很多人发送请求到远程服务器。如何在后台处理请求并稍后报告结果?
用户不会立即需要结果,所以我可以在后台运行它。但是我需要能够告诉用户当他们再次访问该页面时,任务是否完成(以及结果如果完成)。另外,我不希望他们能够在第一个仍在运行时启动另一个相同任务的实例(通过单击按钮)。
任何方式我可以做到以上所有?
编辑:我正在开发的WordPress。它被贴上标签,但我想我应该在问题中提到它。
您需要JavaScript才能创建Ajax请求。你需要学习至少JavaScript的基础知识,然后你可以尝试一个库(例如jQuery),或者你可以创建一个库(如果可以的话)。
这就是我现在正在做的(jQuery)。任务耗时过长,请求超时。我知道我可以增加超时时间,但是我没有必要让用户留在同一页面上。 – lfk
这是基本的过程中,我会去通过
其他想法
你可以每5秒使用javascript轮询您的网站,并检查该作业是否完成。 – bumperbox
你将需要实现某种类型的队列系统 – Trent
@bumperbox这不是问题。我希望他们能够离开该页面。当他们回到那个页面时,它说任务还没有完成,完成等等。代码的服务器端是我的问题。 – lfk