我想从Ajax请求中调用PHP函数。这个PHP函数需要2到3分钟。执行用户可能不想等待2分钟。所以为此,我计划进行ajax调用并重定向到另一个页面,以便User可以接受另一个请求。直到我 -
new Ajax.Request(reloadurl, {
method: 'POST',
data: $('edit_form').serialize(),
parameters: $('edit_form').serialize(true)
onComplete: function(transport) {
//alert(transport.responseText);
window.location = backurl;
},
onCreate : function () {
alert('dsdsdsds');
window.location = backurl;
},
onFailure: function() {
alert('Something went wrong...');}
});
但是它不起作用..请帮帮我 - 建议我这样我可以同时调用另一个ajax请求
答案 0 :(得分:4)
最好的方法就是这样:
<?php
exec('/usr/bin/php /Path/to/script.php {$param1} {$param2} > /dev/null 2>/dev/null &');
?>
然后在script.php中你可以获得这样的参数:
print_r($argv); //print all parameters
echo $argv[0]; //first parameter
这会将php脚本作为单独的线程运行,而不需要用户等待输出。
我倾向于更新文件或数据库以跟踪脚本的运行情况。
答案 1 :(得分:0)
您的方法可行,但如果您使用会话,则应在不再写入时立即使用session_write_close()
手动关闭。
...会话数据被锁定以防止并发写入,只有一个脚本可以随时对会话进行操作