職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

Ajaxを使った非同期通信の実践編2

2024年06月29日 | JavaScript

Ajaxを使った非同期通信の実践編2

【開発環境】
OS:Win11(64ビット)
クロム
Brackets

【Bracketsを使用する】
1,Bracketsを起動する

2,作業用フォルダを作る---「work」

3,新規ファイルを作る--getText1.html

4,コードを書く 

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Ajax サンプル</title>
</head>
<body>

<p>
ボタンをクリックするとデータを取得します。
</p>

<form>
<input type="button" value="ロード" onClick="getData()">
</form>
テキストデータが入る部分を下記のように書く
<div id="result"></div>

<script>
//データをロードする
function getData(){
  let request = new XMLHttpRequest();
  
  request.onreadystatechange = function(){
    if (request.readyState == 4){
      if (request.status == 200){
        let node = document.getElementById("result");
        node.innerHTML = request.responseText;
      }
    }
  }

  request.open('GET', './data.txt', true);
  request.send(null);
}
</script>

</body>
</html>

5.呼び出される。「data.txt」を書く

これはAjaxによる非同期のテストです

6.Webを立ち上げる

7、クロームが立ち上がる

8,ロードをクリックする

以上で終わり

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Ajaxを使った非同期通信の実践編

2024年06月27日 | JavaScript

非同期通信の実践編

【開発環境】
OS:Win11(64ビット)
VSCode1.72.2、
クロム

ここでは、Visual Studio Codeの拡張機能であるLive Serverをインストールした状態で説明をする。出来ない人はBracketsを使ってください!

【フォルダの作成】
VScoodを開き、フォルダを開く


【ファイルを2つ作る】
1.Webページを表示する「sample1.html」ファイル作る

2,データ用のファイル「data.txt」を作る

【Webベージを立ち上げる】




【サーバを立ち上げる】

「データの取得」ボタンを立ち上げると、下図のようになったら成功

 

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Ajax を使った非同期通信方法

2024年06月27日 | JavaScript

Ajax を使った非同期通信方法

【開発環境】
OS:Win11(64ビット)
Brackets-2.2.1
クロム

【非同期通信手段の概要】
ここでは Ajax による非同期通信を行うために XMLHttpRequest オブジェクトの作成し、サーバへリクエストを送信したあと、サーバからレスポンスを受信するまでの方法について解説する。

【XMLHttpRequestオブジェクトを作成する】
最初に XMLHttpRequest オブジェクトを使って、XMLHttpRequestオブジェクトのインスタンスを作成する。コンストラクタはnew XMLHttpRequest(値1,値2)のように引数がある。

・書式
let request = new XMLHttpRequest();//変数をインスタンス化する(オブジェクトを作成する)

【HTTPリクエストを初期化する】
XMLHttpRequest オブジェクトの open メソッドを使って HTTP リクエストの初期化を行います。

・書式は
open(メソッド, URL[, 非同期[, ユーザー名[, パスワード]]])

最初の引数には HTTP リクエストメソッドを指定します。 'GET' 、 'POST' 、 'HEAD' 、 'DELETE' などの値を文字列で指定します。
主に使用されるのは 'GET' と 'POST' で、サーバから指定した URL でデータを取得する場合は 'GET' 、サーバの指定した URL に対して何らかの処理(例えばサーバへファイルをアップロードしたり、データベースを更新したりします)を行う場合は 'POST' を使います。

2 番目の引数にはリクエストの送信先となる URL を文字列で指定します。

3 番目の引数は非同期通信にするか、同期通信にするかを指定する。
非同期通信の場合は true
同期通信の場合は false です。
デフォルトの値は true のため引数を省略した場合は非同期通信となります。

4 番目の引数
認証が必要となる場合のユーザー名

5 番目の引数
パスワードを指定する

サンプル
指定した URL にあるテキストファイルを GET メソッドを使って非同期でサーバから取得してみます。

let request = new XMLHttpRequest(); 
request.open('GET', 'https://www.example.com/data.txt', true);

【サーバからのレスポンスの受信が完了した時にコールバック関数を呼びだす】
同期通信の場合
サーバに対してリクエストを送信すると、サーバからのレスポンスが返ってくるのを待って次の処理へ移る。

非同期通信の場合
サーバへリクエストを送信するとすぐに次の処理へ移る。そのため、サーバからのレスポンスの受信が完了した時に発生するイベントに対するイベントハンドラを利用する。
イベントハンドラとは指定したイベントが発生した時にコールバック関数を呼びだして実行します

XMLHttpRequest.readyState プロパティは XMLHttpRequest オブジェクトの状態を表すプロパティで、次の値をとります。

サンプル

let request = new XMLHttpRequest();
console.log(request.readyState);
※実際に試す場合は URL の部分を正規の URL に書き換えて試しています
request.open('GET', 'https://www.example.com/data.txt', true);
console.log(request.readyState);

> 0
> 1←open メソッドを実行すると readyState プロパティは 1になる

XMLHttpRequest オブジェクトを作成したあと
open メソッドが呼ばれていない場合→readyState プロパティは 0 。
 open メソッドが呼ばれた場合→ readyState プロパティは 1

送信したものがサーバーに受信されると、readyState プロパティは 4 になる。そのため、readyState プロパティの値が変更を確認する必要が出てきた。それを行わせるのが、 XMLHttpRequest.onreadystatechange プロパティである。
onreadystatechange プロパティはイベントハンドラで、あらかじめ登録しておいたコールバック関数が readyState プロパティの値が変更した時に呼び出される。
・onreadystatechange プロパティに対するコールバック関数の設定の書式は

XMLHttpRequest.onreadystatechange = コールバック関数
前サンプルをイベントハンドラを使った方法で書き換えると、

let request = new XMLHttpRequest();

request.onreadystatechange = function(){   console.log(request.readyState);
}

request.open('GET', 'https://www.javadrive.jp/data.txt', true);

>> 1

open メソッドを実行されると readyState プロパティが 0 から 1 に変更されます。この変更に伴って発生したイベントによって、 onreadystatechange プロパティにあらかじめて設定したおいたコールバック関数が呼び出されて readyState プロパティの値がコンソールに出力されます。

次に
サーバからのレスポンスの受信を完了した時に処理を行いたいので、 readyState プロパティの値が変更されてコールバック関数が呼び出されたときに、 readyState プロパティの値を調べて 4 だった場合に受信したデータの処理を記述する。

let request = new XMLHttpRequest();

request.onreadystatechange = function(){
  if (request.readyState == 4){
    // 受信したデータの処理を記述する
  }
}

request.open('GET', 'https://www.example.com/data.txt', true);

【サーバとの通信が正常に行われたかどうかを確認する】
サーバからのレスポンスの受信が完了した場合でも、それはサーバから目的とするデータをレスポンスとして受信したのか、それともサーバが見つからなかったり別の理由でエラーを受信したのかは分かりません。その為、サーバとの通信が正常に行われたのかどうか HTTP ステータスコードを確認します。

XMLHttpRequest.status プロパティには
HTTP ステータスコードの値が整数の値として格納されています。主な HTTP ステータスコードは次のとおりです。

正常に通信が行われた場合は 200 が返ります。それ以外の場合は何らかのエラーが発生しています。
サーバからのレスポンスの受信が完了したあとで、 status プロパティの値を調べて 200 だった場合に受信したデータの処理を記述します。

let request = new XMLHttpRequest();

request.onreadystatechange = function(){
  if (request.readyState == 4){
    if (request.status == 200){
      // 受信したデータの処理を記述する
    }
  }
}

request.open('GET', 'https://www.example.com/data.txt', true);

【受信したデータを取り出す】

今回のサンプルでは GET メソッドを使ったサーバからデータを受信しますので、受信したデータを利用できるように変数などに格納します。受信したデータを取り出すには、データの種類に応じて次の 3 つのプロパティを参照します。

XMLHttpRequest.responseText
XMLHttpRequest.responseXML
XMLHttpRequest.response

responseText プロパティ→受信するデータがテキストの場合に使用します。 responseXML プロパティ→受信するデータが XML または HTML をあらわす Document オブジェクトの場合に使用します。
response プロパティ→ XMLHttpRequest.responseType プロパティで指定した形式のデータとして受信したデータを扱います。

今回はテキストデータを取得するために responseText プロパティを参照して取得したデータを変数に取り出します。
サンプル

let request = new XMLHttpRequest();

request.onreadystatechange = function(){
  if (request.readyState == 4){
    if (request.status == 200){
      let data = request.responseText;
      console.log(data);
    }
  }
}

request.open('GET', 'https://www.example.com/data.txt', true);

【HTTPリクエストをサーバーに送信する(send)】

受信するデータの処理について記述が終わりましたので、 XMLHttpRequest オブジェクトの send メソッドを使ってサーバにリクエストを送信します。書式は次の通りです。

send(データ)
引数にはリクエストを送信するときにサーバに送るデータを指定します。 GET メソッドを使用する場合は通常データはサーバに送信しないので null を指定します。
・サンプル
let request = new XMLHttpRequest();

request.onreadystatechange = function(){
  if (request.readyState == 4){
    if (request.status == 200){
      let data = request.responseText;
      console.log(data);
    }
  }
}

request.open('GET', 'https://www.example.com/data.txt', true);
request.send(null);
これで GET メソッドを使ってサーバからテキストデータを取得するための Ajax を使った非同期通信のコードが完成です。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

XMLHttpRequestオブジェクト--Ajax

2024年06月22日 | JavaScript

XMLHttpRequestオブジェクト

【開発環境】
OS:Win11(64ビット)
Brackets-2.2.1
クロム

Ajaxとは】
Ajax(エイジャックス)とは、Asynchronous+JavaScript+XMLの略称で、JavaScriptの組み込みオブジェクト「XMLHttpRequest」を用いた非同期処理のことです。

【非同期通信と同期通信の違いは】
同期通信→ブラウザ側からサーバにリクエストを投げてからレスポンス(応答)があるまで、ほかの処理が出来ない。

非同期通信→同時に複数の処理をしたり、前の処理が終わる前に、順番を待たずに次の処理を始める通信を指します。サーバからのレスポンスを待っている間に、ほかの処理をすることが出来る。

【XMLHttpRequestオブジェクトのコンストラクタ】
Ajax を使った通信を行う最初の手順は XMLHttpRequest オブジェクトを作成することです。 XMLHttpRequestオブジェクトを作成するにはコンストラクタを使います。

書式
XMLHttpRequest()

【 XMLHttpRequestオブジェクトのメソッド】

【XMLHttpRequestオブジェクトのプロパティ】

非同期通信では送信したリクエストに対してすべてのデータの受信が完了するのを待って処理を行う必要があります。データの通信状態を監視し、データの受信が完了した時に実行するコールバック関数を登録するために使われるのが XMLHttpRequest.onreadystatechange プロパティです。また サーバとの通信が正常に行われたのかを確認するのに使用するのが XMLHttpRequest.status プロパティです。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Windows用 Brackets

2024年06月21日 | テキストエディタ

Windows用 Bracketsについて

Bracketsは、Webサイトの設計が簡単にできる、軽量で強力なオープンソースのテキストエディタです。 標準で基本機能が備わっていて、使いやすいので、初心者には最適なテキストです。

昔はライブプレビューをすると、Chromから拒否されたが、V2.0.1からは改善された。これによって、同期通信が使える様になった。

【ダウンロード】
Bracketsの公式ホームページ<の下記のところをからダンロードを行ってください

成功すると、PCのダンロードに

が表示される

【インストール】
「Brackets-2.2.1.exe」をクリックすると、インストールが開始される。

設定
任意のフォルダを選択し、同意にチェックすると

「次へ」をクリックする

標準を選択すると、インストールが開始される。

完了すると、下記のような画面が現れる

実行をクリックする。下記のような画面が現れる

「index,html」をクリックする

このような表示が出たら、下図のところをクリックする

ライブプレビューが表示される

これで、インストールは成功。

再び、起動したいときは、スタートのBreaketsをクリックすると、起動する
以上

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする