2017-03-01 3 views
0

私はjsのコードを持っている:laravel(php)の実行をjavascript(ajax)から中止するにはどうすればよいですか?

$('#button').on('click', function(e){ 
    console.log('start'); 

    if(xhr != ''){ 
     console.log('terminate'); 
     xhr.abort() 
    }else{ 
     console.log('NOT terminate'); 
    } 

    xhr = $.ajax({ 
     url: url, 
     method: method, 
     success: function(json) { 
      console.log(json); 
     }, 
    }); 
    console.log('end'); 
    return false; 
}); 

とサーバlaravelコード:私は倍増するとき

public function update(Request $request) 
{ 
    DB::transaction(function() { 
     sleep(10); 
     Product::find(1)->increment('user_id'); 
    }); 
    return 'test'; 
} 

クリックボタンの出力は次のとおりです。

start 
NOT terminate 
end 
start 
terminate 
end 
test 

のuser_idは、最初は1であるが、実行した後、それ3ですが、私は2になりたいです。どうすればjavascriptからlaravelの実行を終了(中断)できますか?

+0

2回クリック= 2回イベント= 2回あなたのajaxを実行したので、2倍増分= 1 + 1 + 1 = 3、クリックしてイベントを変更します.' dblclick'イベントを使用します。 – Troyer

+0

@Troyer私はjavascriptからphp exectionを終了させるメカニズムを探していますが、これは上記の理由だけでは説明できません。 – fico7489

+0

JSからPHPサーバー側の実行を停止する方法はありませんあなたのajaxのより多くのパラメータは、ajax関数のコントローラで条件を作成する:) – Troyer

答えて

1

あなたはjavascriptの内部からPHPの実行を終了することができない、彼らはasyncronousです。各Ajaxリクエストは、通常はレスポンスを返すサーバー側のPHP処理を開始します。しかし、javascriptはリクエストを送信すると、サーバー側のPHPを制御できません。

関連する問題