並列的に処理が進みます。以下、全て並列的に進みます。ajaxを使うときに知りたかったこと引数を指定する際に、直列処理を行ないたい場合は、無名関数で返すようにします。failed);こんな感じで引数を指定する場合は、無名関数でreturnすれば直列処理がされます。Deferredを使用して、promiseを返してますがajaxを使用する際は、ajaxをそのまま返しても問題ありません。(むしろスッキリ記述出来るまである)ajaxもDeferredを持っており、戻り値としてpromiseを返します。行なう場合、$.whenメソッドを使用すると簡単に出来ます。)引数に入れた項目を非同期で処理します。使用例まずは、簡単な使用例を確認しましょう。err);});個人的にはそこまで細かい指定をしないのであれば、ajaxメソッドを使用するよりも、$.postメソッドや$.getメソッド等の違うメソッドを使用したほうがいいのではないかなと思います。細かい指定をするのであれば、$.ajaxメソッドを変数に纏めるのがいいと思います。whenの引数で指定した変数を並列処理を行い、thenの引数では、whenで指定した引数順にカンマ区切りでHTTP通信したデータが格納されます。jqXHR)でしたが、それが各オブジェクトごとに配列で渡されます。jqXHRが格納されてます。XHRという風な感じになります。便利ではありますが、このままだと問題があります。rejectが返ります。console.log("どこかでエラーが起きている");});これはdata3でファイルが存在しないためエラーが起きていますが、promiseの結果がrejectになるので他の成功した処理に関係なく、失敗となります。通常どこでエラーが起きているのか特定するのも難しいです。エラーが起きても、通信に成功したものは結果を出して、失敗したものだけをエラーとしたい場合も結構あります。どれでエラーが発生したのかも特定したいです。そこでまた$.Deferredメソッドを使用します。console.log('どこかで失敗');});例1_1では、ajax通信が成功しても失敗しても、deferredのpromiseがresolveが設定されます。extendメソッド(後述)で、ajaxのpromiseがdeferredのpromiseに上書きされます。例1_2も、やっていることは同様ですが、myAjaxの内部で結果を出すのではなく、resolveの引数に値を入れて呼び出し側で結果を出すようにしています。例2でも、基本的にはやっていることは同じです。ajax通信の成否に関わらずresolveが返ります。resolveWithが指定されています。resolveWithについては、promiseの結果をresolveにするapply(後述)みたいな感じで覚えるといいと思います。コールバック関数内で、thisとして利用したい値を第一引数で指定する事が出来ます。第二引数は通常のresolveの引数を配列で指定します。jqXHRが順番に指定されます。余談ですが、rejectWithというものもあります。MDNfunctionの中で、thisを設定している場合そのthisの中身を好きな値に置換することが出来ます。defer_list[2]);と同義です。きほんのきこれもapplyのような感覚に似てます。contextで指定した値を、thisで受取る事が出来ます。1});$.extendメソッドObjectの結合(マージ)を行ないます。オブジェクトのdeepな箇所を参照します。targetObject。ターゲットとなるオブジェクトを指定します。object連結させるオブジェクトを指定します。同名のキーがある場合は、後にあるものが上書きされます。5000}});サンプルこれは、obj_1をターゲットにしてobj_2を連結させています。exObjという変数にオブジェクトを返して、for文で回してます。obj_1にobj_2が連結された中身が、exObjという変数に入っているのが確認できると思います。ここでもう一つ、コンソールを確認して下さい。obj_2とexObjについては、思惑通りの値になっているかと思いますが、ターゲットのobj_1の値もexObjと同様になっているのが分かります。これはobj_1をexObjに参照渡ししています。先ほどの例に加えてみましょう。9999}参照してるオブジェクトを渡してますので、片方を変えれば両方とも変わります。参照渡しされると困るというか、値渡し(オブジェクト内容を複製するだけ)したいときってありますよね。【Javascript】値渡しと参照渡しについてあらためてまとめてみる$.extendメソッドの第一引数に空のオブジェクトを入れることで解消できます。5000}});サンプルまた、第一引数をdeepにして、deepな参照をfalseに設定しても同様の結果になります。5000}});オブジェクトのプロパティ値を増やすパターンも確認しましょう。}}});親のプロパティ名がorangeで重複しているため、上書きされてしまっています。これはdeepをtrueにすれば解決します。}}});参照渡しなので注意して下さい。サンプル余談ちなみに、大体は$.getや$.postメソッドで事足ります。$.ajaxメソッドの簡易版のような感じですので、軽く説明して終わります。第三引数のfunctionは成功した時のみに発火します。dataTypeは第四引数で指定して下さい。リファレンス:jQuery.getちなみに、then等も使えますので、複数ファイルの直列処理も可能です。いいのかどうかは分かりませんが、第三引数のコールバック関数をnullに設定してます。これは、「コールバック関数の引数」と「thenのコールバック関数の引数」が同じデータを持ってくるためです。メソッドを指定します。HTTP通信先のURLを指定します非同期を真偽値で指定します。規定値はtrue(非同期)認証が必要なページには、予めユーザ名を指定することが出来ます。(省略した場合、ダイアログが表示されます)認証が必要なページには、予めパスワードを指定することが出来ます。(省略した場合、ダイアログが表示されます)戻り値はありません。send([sendData])送信データを指定します。openメソッドでPOSTを指定したときにのみ指定をします。abort()HTTP通信を中止します。onabortイベントが発行されます。value)ヘッダの種類を指定します。”Content-Type”一択で考えていいと思います。引数のフォーマットを指定します。「user=taro」「age=18」「blood=b」という3つのパラメータを送信したい場合『user=taro&age=18&blood=b』getResponseHeader(headerType)指定したレスポンスヘッダ(クライアント側に返す際のヘッダ)情報を1つ取得します。getAllResponseHeaders()全てのレスポンスヘッダ情報を取得します。プロパティreadyStateHTTP通信の状況を取得します。4)statusHTTP通信の状態を取得します。500等)statusTextHTTP通信の状態を文字列で取得します。Found等)responseTextレスポンスボディをString型で取得します。responseXMLレスポンスボディをDocument型で取得します。responseTypeレスポンスボディのデータ型を指定します。responseプロパティと併せて使用します。responseレスポンスボディを任意のデータ型(responsTypeで指定した型)で取得します。オブジェクトを取得します。XMLHttpRequestUploadは送信中のイベントを発生させることが出来ます。POSTを指定する必要があります。timeoutタイムアウトまでの時間をミリ秒で指定できます。認証ヘッダといった認証情報を使用させるかを示します。認証情報を送信します。イベントonreadystatechangeHTTP通信の状態が変化するたびに実行されます。(readyStateの値が変わるたびと覚えるといいかも)onloadstartHTTP通信を開始したときに実行されます。onprogressHTTP通信中に繰り返し実行されます。onloadend成否に関係なく、HTTP通信が終了したら実行されます。onloadHTTP通信が成功したときに実行されます。onerrorHTTP通信が失敗したときに実行されます。onabortHTTP通信が中止になった際に実行されます。ontimeoutタイムアウトエラー時に実行されます。ProgressEventオブジェクトが入ります。ように指定したとしたら、引数のeventです。totalが入ります。lengthComputable進捗のサイズ計算が可能であるかを取得します。ついて】addEventListenerを使うとか、ここが参考になりました。blogキリが無いので一旦締めます。余裕が出てきたときに調べます。