支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡

  • TOP
  •   
  • コラム
  •   
  • JavaScriptが基盤の技術であ

はじめに

IT技術が普及していく中で、ほとんどの人がWebサービスを利用して日々生活をしています。Webサービスを提供する側も、利用者にとって利便性を高めながらWebサービスを利用してもらうためのシステム開発を行なっています。利便性の向上に向けて1つの指標となるのは、データ処理の速さになります。この記事ではその点に注目し、Webサービスの利便性を向上させる技術の1つであるAjaxについて述べていきたいと思います。

Ajaxとは?

Ajax(エイジャックス)とは、「Asynchronous JavaScript + XML」の略で、特定かつ複数の技術を用いて、非同期通信を行ないサーバーとの連携を可能にする技術です。

まず説明するのが、「非同期通信」です。非同期通信とは、データ送信と受信の時期を合わせずにデータの通信を行うことです。本来のWebの仕組みであれば利用者がサーバーへリクエストを送り、それに対してサーバーがレスポンスを行うという仕組みでした(同期通信)。この場合、レスポンスが返されるまで利用者は他の動作を行うことが出来ず、また、データの送受信時、利用者とサーバーがお互いに通信可能な状況でなけれデータの送受信ばが行なえないという課題がありました。その課題を解決するのが非同期通信になります。レスポンスが返るまでの間、他の動作を行うことが可能となり、また接続も利用者かサーバーどちらかが接続可能な状態であればデータの通信が可能になり、非常に利便性が向上します。それを可能にするのがAjaxです。

Ajaxの利用例として有名なのがGoogle Mapです。地図の拡大・縮小についてはAjaxが用いられていると言われています。また、検索サイトで調べた単語の履歴がすぐに反映されるのもAjaxの技術を用いていることがあります。ここからはそんなAjaxの仕組みについて述べていこうと思います。

Ajaxの仕組みとは?

Ajaxでは特定かつ複数の技術が用いられていると先述しました。それが以下になります。

  • XML・・データのやり取りや管理を簡潔に行う目的で提供されるマークアップ言語です。マークアップ言語にはHTMLなどがありますが、HTMLはWebページを構成する言語であるのに対し、XMLは文章中のデータをわかりやすくコンピュータに伝える言語になっています。※ただし近年ではXMLよりJSON(JavaScript Object Nation)の方が主流になってきています。
  • DOM・・プログラムからXMLやHTMLを操作出来るようにする仕組みを指します。DOMは階層構造を取っており、その階層構造を定義しています。HTMLなどでタグをつけ、文章のデータを操作する際に必要な技術になります。多種の言語で利用できます。
  • XMLHttpRequest・・JavaScriptを用いてHttpリクエストを行う組み込みオブジェクトを指します。画面遷移なしでデータの送受信を可能にします。XMLと名前には記載がありますが、XML形式以外のデータも扱うことが可能です。この技術がAjaxを用いた非同期通信を実現する核心になります。
  • JavaScript・・動的Webページを作成するのに欠かせない言語で、HTMLとCSと組み合わせて利用されることが多いフロントエンド寄りの言語です。上記での説明も踏まえると、DOMはJavaScriptから利用し、XMLHttpRequestはJavaScriptでないと利用できないので必然的にこのJavaScriptがAjaxに利用されます。
  • これらの技術を組み合わせてAjaxの技術は成り立っています。特にXMLHttpRequestは、非同期通信を可能にするための重要な技術になります。

    Ajaxを用いたWebの仕組みについては、

    ①JavaScriptとXMLHttpRequestを用いてリクエストをサーバーへ送信
    ②サーバーで情報を受け取り、処理開始
    ※この間利用者はWebページ内での操作が可能
    ③処理の結果をXMLなどの形式で返答
    ④レスポンスを受信し、JavaScriptを用いてDOMを利用し、ページを更新

    となります。同期通信と比較して少しややこしくはなりますが、この流れを踏襲することでバックエンドの処理を待つことなく、フロントエンドの処理を別に行うことができ、利用者の利便性の向上が見込めます。

    まとめ

    この記事では、JavaScript等を用いて利用されるAjaxについての概要と仕組みについて記載してきました。同期通信と比較して、使用するブラウザによって動作が微妙に異なったり、使用されている各技術の課題点を踏襲する形になってしまうので注意は必要ですが、必要なデータ量だけを読み込むことになるので、通信速度の向上が見込めたり、データの整理・管理を行ないやすいという利点も兼ね備えています。Webサービスを作成する際、利用者が使いやすいようにAjaxの技術を取り入れ、Webサービスの質を向上させる事も重要な要素になってくると思います。技術力の向上にもつながると思いますのでAjaxの学習を進めていくことをおすすめします。ご拝読いただきありがとうございました。