1

我想从 Ajax 请求中调用 PHP 函数。这个 PHP 函数需要 2 到 3 分钟。执行并且用户可能不想等待 2 分钟。因此,为此我计划进行 ajax 调用并重定向到另一个页面,以便用户可以接受另一个请求。直到我做到了——

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 请求

4

2 回答 2

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 脚本作为单独的线程运行,并且不需要用户等待输出。

我倾向于更新文件或数据库以跟踪脚本的运行情况。

于 2013-05-07T14:01:47.027 回答
0

您的方法可能有效,但如果您使用会话,则应session_write_close()在不再写入时手动关闭。

...会话数据被锁定以防止并发写入任何时候只有一个脚本可以对会话进行操作

于 2013-05-07T14:21:44.927 回答