Php 如何在后台运行大型处理?
我开发了分析数据的应用程序,即域名。当用户提供10个域时,下面的javascript代码工作正常,但当用户开始分析100个域时,下面的代码不工作。我使用javascript在表单提交3秒钟后重定向到另一个页面,因为处理分配任务至少需要1分钟的时间Php 如何在后台运行大型处理?,php,javascript,forms,Php,Javascript,Forms,我开发了分析数据的应用程序,即域名。当用户提供10个域时,下面的javascript代码工作正常,但当用户开始分析100个域时,下面的代码不工作。我使用javascript在表单提交3秒钟后重定向到另一个页面,因为处理分配任务至少需要1分钟的时间 function submitForm(){ document.form1.button2.click(); var t=setTimeout("redir()",3000); } function redir(){
function submitForm(){
document.form1.button2.click();
var t=setTimeout("redir()",3000);
}
function redir(){
window.location.href = '<?php echo base_url();?>menu/showmsg';
}
函数submitForm(){
document.form1.button2.click();
var t=setTimeout(“redir()”,3000);
}
函数redir(){
window.location.href='menu/showmsg';
}
当它是一个小任务时,它工作得很好,但若有一个大文件要处理,javascript就不能工作,它会等到任务从PHP端完成。
AJAX或JQUERY中是否有任何选项,JavaScript中是否有任何最佳代码?一个简单的方法是在运行php的目标页面中使用iframe。页面将被加载,iframe将等待php页面。您可以使用一些javascript来检查iframe中的更改或标志,以便继续进程 您可以使用jQuery.ajax(url[,settings])等异步发送所有请求 文件如下:
$.ajax({
url:'menu/showmsg',
错误:函数(){
返回true;
},
成功:函数(msg){
//做你想要的
}
});
您能再详细解释一下吗?根据你写的,我不确定问题出在哪里。js需要很长时间吗?php?保持同步有问题吗?我真的不知道。谢谢。我已设置忽略用户中止(true);在PHP代码中。我希望它在后台处理,但当我们提交表单进行处理时,它会重定向到另一个带有消息的页面。尽管看起来你们找到了一个解决方案。我建议改为建立一个工作队列。我想从长远来看这会有帮助。我还没有找到解决办法。上面的代码只适用于小数据,我的问题是大数据。当我开始处理上面的大数据时,javascript不起作用。不要等待作业完成,而是实现一种异步机制,在该机制中,您可以向队列中添加一个作业(应该是快速的),并在适当的位置设置另一个系统,您可以询问特定作业是否准备就绪。队列应该完全独立于此工作。
$.ajax({
url: '<?php echo base_url();?>menu/showmsg',
error: function(){
return true;
},
success: function(msg){
// make what do you want
}
});