【JQuery】バージョンごとのAJAXを使った非同期通信の仕方
-
カテゴリ:
- JavaScript
-
タグ:
- #jQuery
jQueryのAJaxの非同期通信のメモ。
まず、jQueryのバージョン確認方法確認しましょう。
確認方法は下記の記事に書いています。
https://notepad-blog.com/content/158/
書き方がバージョンによって異なるため注意してください。
一様、バージョン1.0とバージョン1.5以降、バージョン1.8以降の3パターンを記載しています。
■バージョン1.0
function execAjax(url, postdata, method, callback) {
// ajax通信
$.ajax({
type: method,
url: url,
dataType: "json",
cache: false,
timeout: 10000,
data: postdata,
beforeSend: function (jqXHR, settings) {
// 通信を行う前処理
console.log("ajax beforeSend");
},
success: function(data, status, xhr) {
// Ajax通信が成功した場合に呼び出されるメソッド
console.log('Ajax通信が成功しました');
// 成功
callback(data);
},
complete: function (jqXHR, textStatus) {
// 通信が成功してもエラーになっても実行される場所
console.log("ajax complete");
},
error: function(xhr, status, error) {
// Ajax通信が失敗の場合に呼び出されるメソッド
alert('Ajax通信に失敗しました');
console.log("ajax通信に失敗しました");
console.log("XMLHttpRequest : " + jqXHR.status);
console.log("textStatus : " + textStatus);
console.log("errorThrown : " + errorThrown.message);
},
});
}
■バージョン1.5以降
function execAjax(url, postdata, method, callback) {
// ajax通信
$.ajax({
type: method,
url: url,
dataType: "json",
cache: false,
timeout: 10000,
data: postdata,
beforeSend: function (jqXHR, settings) {
// 通信を行う前処理
console.log("ajax beforeSend");
},
})
// Ajax通信が失敗の場合に呼び出されるメソッド
.error(function (jqXHR, textStatus, errorThrown) {
alert('Ajax通信に失敗しました');
console.log("ajax通信に失敗しました");
console.log("XMLHttpRequest : " + jqXHR.status);
console.log("textStatus : " + textStatus);
console.log("errorThrown : " + errorThrown.message);
})
// Ajax通信が成功した場合に呼び出されるメソッド
.success(function (data, textStatus, jqXHR) {
console.log('Ajax通信が成功しました');
// 成功
callback(data);
})
// 通信が成功してもエラーになっても実行される場所
.complete(function(xhr, status) {
// 通信完了時の処理
console.log("ajax complete");
});// END ajax通信
}
1.0⇒1.5の違い
非同期処理後の成功分岐(success)やエラー分岐(errror)、完了処理(complete)の書き方に違いがあります。
1.0ではカンマ区切りでfunctionを記載してますが、1.5ではピリオドで関数を繋げて記載します。
■バージョン1.8以降
function execAjax(url, postdata, method, callback) {
// ajax通信
$.ajax({
type: method,
url: url,
dataType: "json",
cache: false,
timeout: 10000,
data: postdata,
beforeSend: function (jqXHR, settings) {
// 通信を行う前処理
//cmn_loading();
console.log("ajax beforeSend");
},
complete: function (jqXHR, textStatus) {
// 通信が成功してもエラーになっても実行される場所
//cmn_unloading();
console.log("ajax complete");
}
})
// Ajax通信が失敗の場合に呼び出されるメソッド
.fail(function (jqXHR, textStatus, errorThrown) {
alert('Ajax通信に失敗しました');
console.log("ajax通信に失敗しました");
console.log("XMLHttpRequest : " + jqXHR.status);
console.log("textStatus : " + textStatus);
console.log("errorThrown : " + errorThrown.message);
})
// Ajax通信が成功した場合に呼び出されるメソッド
.done(function (data, textStatus, jqXHR) {
console.log('Ajax通信が成功しました');
// 成功
callback(data);
}); // END ajax通信
}
1.5⇒1.8の違い
成功分岐とエラー分岐が$ajax()より外出しされました。さらに成功処理はsuccess()からdone()に代わり、エラー処理はerror()からfail()に書き方が変わりました。
以上です!!
投稿日:2020-02-22
更新日:2020-02-22