2017-04-06 28 views
0

現在、私はAJAXを呼び出して、データとして次のオブジェクトを掲示していますAJAXポストコールに渡す:サーバー側で最も効率的な方法と

var answer = { 
       checklist: {id: 1}, 
       question: {id: questionId }, 
       answer: "testing1", 
       notes: checkInNotes 
     }; 

を、これが答えやメモを更新idと1の質問とチェックリストがあるデータベースで

ここで、上記のオブジェクトの質問プロパティの一部としてajaxに渡す必要があるquestionIdの配列があります。これをAjaxで実現するにはどうすればよいでしょうか?

現在、私はデータベースに更新が必要な値ごとにサーバーにx回の呼び出しを送信することでこれを達成できますが、これは明らかに非効率的です。

私はajaxにはかなり新しく、知識の不足を許してください。

ありがとうございます。

+1

一度すべての記事を送信します。questionIds.join( "")'または配列として追加し、ハンドルオンサーバ – mplungjan

答えて

0

JSONはオブジェクトと同様に配列を許可します。

オブジェクトのプロパティの1つとして配列を含めることができます(必要な場合)。これをサーバーに取り込むことができます。

var answer = { 
       checklist: {id: 1}, 
       question: {id: questionId }, 
       answer: "testing1", 
       notes: checkInNotes, 
       arrayOfQuestionId: [ 1, 2, 3, 4 ] 
     }; 

また、代わりに一つだけのオブジェクトの配列を送ることができ:

var otherAnswer = [ object1, object2, ... ]; 
0

ヒント:ミックスデータを生成し、それが側を切断するために、すべてを投稿してください。

1.send
2.send全てのミックスデータサーバへと解析され、クライアントからのすべての要求。

ウェイ1:

let url='*',ids=[1,2,3]; 

サーバーから//配列のparamseを生成します。

function getarams(){ 
let requests_params=ids.map(i=>{ 
    let data_temp={question:{id:i}} 
    return data_temp; 
    }||[]; 
return resuests_params; 
} 

//サーバー

$.post(url,{data:getParams()},function(data,status){},'json');<br> 

ウェイ2から解析さ: `IDS

let posts=getParams().map(d=>{ 
     return $.post(url,d) 
}); 
$.when(posts[0],posts[1],posts[2]).then(result=>{ 
    console.log(result); 
}) 
関連する問題