【Javascrpt】「XMLHttpRequest」オブジェクト - サーバーのファイルを読み込む方法
【Javascrpt】
「XMLHttpRequest」オブジェクト - サーバーのファイルを読み込む方法
はじめに
「XMLHttpRequest」オブジェクトは、
サーバーの「ファイル」を読み込むことができる。
「ファイル」の「ダウンロード進捗状況」などを取得することもでき、
「プログレスバー」を表示するのにも利用される。
Back
「XMLHttpRequest」オブジェクトとは
「XMLHttpRequest」オブジェクトは、
Webとサーバーの間でデータ交換をするために、
「HTTPリクエスト」を発行することができる。
「XMLHttpRequest」で「HTTP」リクエストを送るには、
・「XMLHttpRequest」オブジェクトを作成する
・「URL」を開いてリクエストを送信する。
・トランザクションが完了
・オブジェクトに結果が埋め込まれる
・「HTTP」ステータスコードやレスポンスの本文などを確認する
といった流れで手続きを行う。
Back
「XMLHttpRequest」オブジェクト―の「プロパティ」「メソッド」
| 項目 | 説明 |
| コンストラクター |
| XMLHttpRequest() | |
| |
| |
| プロパティ |
| channel | |
| mozAnon | |
| mozBackgroundRequest | |
| mozResponseArrayBuffer | |
| mozSystem | |
| multipart | |
| onreadystatechange | 読み込み状況が変化するごとに、ステートメント変更してくれる |
| readyState | 読み込み完了ステータスの値を取得する |
| response | |
| responseText | 読み込んだファイルのテキストを取得する |
| responseType | |
| responseURL | |
| responseXML | |
| status | 現在のXMLHttpRequest()のステータスを取得する |
| statusText | |
| timeout | |
| upload | |
| withCredentials | |
| |
| |
| メソッド |
| abort() | |
| getAllResponseHeaders() | |
| getResponseHeader() | |
| open() | インスタンスにファイルをオープンする |
| openRequest() | |
| overrideMimeType() | |
| send() | 終了する |
| sendAsBinary() | |
| setRequestHeader() | |
| |
| |
| イベント |
| onreadystatechange | 読み込み状況が変化するごとに、ステートメント変更してくれる |
| abort | |
| onerror | ダウンロード中に「エラー」が発生したことを通知してくれる |
| error | |
| onload | ダウンロードが完了したことを通知してくれる |
| load | |
| loadend | |
| loadstart | |
| progress | |
| onprogress | |
| timeout | |
| |
| |
| 継承 |
| XMLHttpRequestEventTarget | |
| EventTarget | |
| |
| |
| XMLHttpRequest に関連するページ |
| FormData | |
| XMLHttpRequestEventTarget | |
| XMLHttpRequestUpload | |
| |
Back
「XMLHttpRequest」オブジェクトを使用する「方法」
「XMLHttpRequest」オブジェクトを使用する手順
| 使用手順 | サンプルコード |
| XMLHttpRequest()インスタンス生成 | let インスタンス変数 = new XMLHttpRequest(); |
| ファイルをオープンする | インスタンス変数.open('GET', 'https://ドメイン名.com/ディレクトリ名/ファイル名.txt', true) |
| 読み込み完了ステータスの値を取得する | インスタンス変数.readyState |
| 現在のXMLHttpRequest()のステータスを取得する | インスタンス変数.status |
| 読み込んだファイルのテキストを取得する | インスタンス変数.responseText |
| XMLHttpRequest()の終了 | インスタンス変数.send(); |
「XMLHttpRequest」を使うサンプルコード
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://ドメイン名.com/ディレクトリ名/ファイル名.txt', true);
//「onreadystatechange」は、読み込み状況が変化するごとに、ステートメント変更してくれる。
xhr.onreadystatechange = function(){
if((xhr.readyState == 4) && (xhr.status == 200)){
var data_list = xhr.responseText.split("\n");
var output = '';
for(let i=0;i<3;i++){
output += '<li>' + data_list[i] + '</li>';
}
document.getElementById('example').insertAdjacentHTML('afterbegin', '<ul>' + output + '</ul>');
}
}
xhr.send(null);
Back
「XMLHttpRequest」オブジェクトで「ダウンロードの進行状況」を取得する方法
「JavaScript」で「ダウンロードの進行状況」を「取得」するには、
「XMLHttpRequest」オブジェクトを使用する。
「ダウンロードの進行状況」を「取得」する「サンプルコード」
var xhr = new XMLHttpRequest();
xhr.open('GET', 'ファイルのURL'); // ダウンロードしたいファイルのURLを指定する
xhr.onprogress = function(event) {// ダウンロードに変化があった時に発生する処理
if (event.lengthComputable) {
var percentComplete = (event.loaded / event.total) * 100;
console.log(percentComplete + '% downloaded');
// ここでプログレスバーの幅を更新するなどの処理を行う
}
};
xhr.onload = function() { // ダウンロードが完了したときに発生する処理
if (xhr.status === 200) {
console.log('ダウンロード完了');
// ダウンロードが完了した後の処理をここに記述する
}
};
xhr.onerror = function() { // エラーが発生したときに発生する処理
console.log('ダウンロード中にエラーが発生しました');
};
xhr.send();
Back