1

JavaScript に「保存」機能があり、サーバーに情報を保存します。この関数は、複数回連続して呼び出されます。競合状態の形成が心配です。このため、呼び出し関数 (save) から要求応答関数 (save_Succeeded) に状態変数を渡す方法があることを期待していました。このようにして、どのアイテムが正常に保存されたかを確実に知ることができます。とにかくこれを行うことはありますか?現在、私は以下を持っていますが、状態変数を渡す方法がわかりません。ありがとう!

function save(item) {
  $.ajax({
    url: getUrl(),
    type: "POST",
    data: JSON.stringify(item),
    contentType: "application/json",
    success: save_Succeeded
  });
}

function save_Succeeded(result) {
  alert("Display Saved Item ID here");
}
4

2 に答える 2

0

もちろん、これは非常に重要です。これは、私の AJAX 呼び出しの 1 つの例です。

    $.ajax({
        url: "/phpAJAX/save_data.php",
        type: "post",
        data : querystring + "&schema=" + schema + "&table=" + table,
        success: function(data){
            if (data != "Data saved successfully."){
                show_dialog(data);
            }else{
                show_dialog(data,"bad");
            }
        }
    });

もしあなたがそうするなら

success: function(data)

data変数には、サーバーの応答から返されたデータが含まれます。サーバーの応答を制御して、成功または失敗のいずれかにすることができます。ご覧のとおり、データが「データが正常に保存されました」であることを確認し、そうでない場合はエラーが発生したことを認識し、そのエラー メッセージを表示します。

あなたの場合、成功した場合は保存されたデータのIDを返すようにサーバーコードを変更する必要があり、それはdata変数に含まれます。

于 2012-04-27T17:05:08.560 に答える
0

オプションを使用しcompleteて、ajax 呼び出しの状態を取得することもできます。このような :

function save(item) {
   $.ajax({
      url: getUrl(),
      type: "POST",
       data: JSON.stringify(item),
       contentType: "application/json",
       complete : function(xhr, responseText, thrownError) {
          //request is complete
          save_Succeeded(xhr.status, responseText);
       }
    });
}

save_Succeeded()のようになります:

function save_Succeeded(status, result) {
    alert("Status ---------> " + status +
          "Result ---------> " + result
         );
}
于 2012-04-27T17:40:42.083 に答える