jQueryでAjax(非同期通信)を実装する方法を解説します。
フロントエンドのコーディングでよく使用するため、コピペで実装できるようテンプレート化しました。
Ajaxとは?
Ajax(Asynchronous JavaScript and XML)は、Web開発における技術の一つで、非同期通信を利用してWebページの一部を動的に更新する手法です。Ajaxを用いることで、ページ全体をリロードすることなくデータの送受信を行い、ユーザー体験を向上させることができます。
Ajaxの特徴
非同期通信
ページ全体をリロードすることなく、バックグラウンドでデータを送受信することが可能。動的な更新
受け取ったデータを用いて、Webページの一部を動的に更新・変更することが可能。
【雛形】Ajaxテンプレート
以下のコードはAjaxの基本的なコードです。
JavaSctipt
Copy
$(function(){
$.ajax({
url: 'url', // URLを指定
type: 'GET',
}).done(function(data) {
// 通信が成功した場合の処理
console.log(data);
}).fail(function(jqXHR, textStatus, errorThrown) {
// 通信が失敗した場合の処理
console.log('通信に失敗しました。');
}).always(function(jqXHR, textStatus) {
// 常に実行する処理
console.log('Request completed: ' + textStatus);
});
});
Ajaxの主なオプション
url | リクエスト先のURLを指定します。 省略した場合、呼び出し元のページに送信します。 例: url: 'https://webdesign-programming.com/sample/ajax.html' |
---|---|
method | HTTPリクエストメソッド(GET、POST、PUT、DELETEなど)を指定します。 初期値: GET 例: method: 'POST' |
data | 送信するデータをオブジェクト形式で指定します。 指定したデータは、クエリー文字列に変換されGETリクエストとして付加されます。 例: data: { key1: 'value1', key2: 'value2' } |
timeout | リクエストがタイムアウトするまでの時間をミリ秒で指定します。 初期値: 0 (無制限) 例: timeout: 5000 |
cache | ブラウザキャッシュを使用するかどうかを指定します。 初期値: true (キャッシュ有効) 例: cache: false |
async | 非同期リクエストを行うかどうかを指定します。 初期値: true (非同期) 例: async: true |
dataType | サーバーからのレスポンスのデータタイプ("json", "xml", "html", "text", "script"など)を指定します。 初期値: 自動判別 例: dataType: 'html' |
【サンプル】Ajaxでhtmlファイルのデータ読み込む方法
以下のコードは、「Ajaxを実行する」ボタンをクリックするとAjaxが発火するようになってます。
発火後、https://webdesign-programming.com/sample/ajax.htmlのHTMLファイルからp
タグのテキスト(Ajax通信に成功しました。)を取得します。
その後、取得したテキストをalert
で表示してます。
JavaSctipt
Copy
$(function(){
$('#btn').on('click', function() {
$.ajax({
url: 'https://webdesign-programming.com/sample/ajax.html', // URLを指定
type: 'GET',
cache: false,
dataType: 'html',
}).done(function(data) {
// 通信が成功した場合の処理
let parser = new DOMParser();
let doc = parser.parseFromString(data, 'text/html');
let targetElement = $(doc).find('p');
// targetElementの内容をalertで表示
alert(targetElement.text());
}).fail(function(jqXHR, textStatus, errorThrown) {
// 通信が失敗した場合の処理
console.log('通信に失敗しました。');
}).always(function(jqXHR, textStatus) {
// 常に実行する処理
console.log('Request completed: ' + textStatus);
});
});
});
jQuery初級者におすすめの1冊
リンク
もみじ
この本はHTMLとCSSの知識がある程度あり、これからjQueryの学習を始める方におすすめの1冊です。
実務で使用するサンプルコードも多数あり、製作現場でも使用できるスキルを学ぶことができます。
もみじ
ajaxで取得した
data
は文字列形式のため、DOMParser
を使って、document
オブジェクトに変換してます。document
オブジェクトに変換することで、DOM操作がやりやすくなります。