重定向到PHP中的另一个页面后如何继续运行ajax调用?
当 PHP 中的 Ajax 调用打开时,如何从一个页面转到另一个页面?
我的ajax调用正在执行一项非常复杂的任务,这将需要很长时间那么,是否可以在页面重定向后运行ajax调用?
我在单击提交按钮时进行ajax调用,然后该页面重定向到另一个页面,然后我的ajax调用是继续在后端运行。<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<title></title>
</head>
<body>
<input type="text" name="altname" id="altname">
<button id="btnSubmit">Submit</button>
</body>
</html>
<script type="text/javascript">
$(document).ready(function(){
$(document).on('click','#btnSubmit',function(){
var altname = $("#altname").val();
$.ajax({
url:"http://localhost/z/backend-queue-job-php/queue_job.php",
type:"POST",
data:{altname:altname},
success:function(result)
{
alert(result.msg);
}
});
window.location.href = "http://localhost/z/backend-queue-job-php/thankyoupage.php";
});
});
</script>
在后台运行 PHP 脚本的更简单方法是使用 exec 或 shell_exec
您可以在通过 ajax 调用的 php 文件中运行以下函数,如果要存储日志信息,请使用日志路径传递当前脚本的路径:
shell_exec("/path/to/php /path/to/queue_job.php > /path_to_log/debug.log 2>&1");
它只能在 PHP 部分中使用异步任务来完成。
- 为每个任务分配一个 ID
- 您的 ajax 将创建新任务或获取现有任务的状态