-1

.post画像をphpにアップロードするためにjQueryを使用して複数のコールバックを取得することは可能ですか?
バイナリ文字列を介して処理するために画像をサーバーに送信しています。画像がアップロードされたときにフロントエンドにステータスを表示し、処理アイコンを表示したいと考えています。

現在、私は標準の .post を使用していますが、理想的にはこれが私が探しているシナリオです -
jquery:

$.post( 'process.php', { myvar:myvar}, function(data){

    if(data=='callback_1'){
        // process 1
    }else if(data=='callback_2'){
        // process 2
    }

}); 

php:

$myvar = $_POST['myvar'];

// after process 1
echo 'callback_1'

// after process 2
echo 'callback_2'
4

1 に答える 1

0

PHPスクリプトに配列を設定します

$r['callback_one'] = 'complete';
$r['callback_two'] = 'fail';

echo json.encode($r);

JavaScript:

r = JSON.parse(data);
if (r.callback_one === 'complete){//do something};

もちろん、これはコールバックを一度に送信しますが、これはあなたが求めているものではないかもしれません.


物事を順番に試して取得する必要がある場合に私が考えることができる唯一のことは、フラッシュを使用することです:

各 `echo` 呼び出しの後に出力をフラッシュする方法は?

ob_end_flush();

# CODE THAT NEEDS IMMEDIATE FLUSHING

ob_start();

サーバーがパケットを送信する価値があると見なすものを送信するのに十分な文字を構築するまで、クライアントがサーバーからパケットを受信しないということさえあるかもしれません。

古い答え:

ob_implicit_flush を使用すると、出力バッファリングに一時的にバッファリングをオフにするように指示できます。

ob_implicit_flush(true);

# CODE THAT NEEDS IMMEDIATE FLUSHING

ob_implicit_flush(false);
于 2013-08-09T23:19:44.683 に答える