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()ている場合は、書き込みをやめたらすぐに手動で閉じる必要があります。

... 同時書き込みを防ぐために、セッション データはロックされます。いつでも 1 つのスクリプトのみがセッションで操作できます。

于 2013-05-07T14:21:44.927 に答える