【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