非同期通信処理について(おさらい)

AjaxのAの文字は非同期通信処理(Asynchronous)です。

Ajaxとは?

Ajax」はAsynchronous JavaScript+XMLの略です。
技術そのものではなくWeb関連の技術を新しい組み合わせで連携させる事を指します。

採用例

XMLHttpRequestについて

以下ではAjaxの構成要素の中で特にXMLHttpRequestについて簡単にまとめます。
XMLHttpRequestはHttpクライアントを実現するオブジェクトです。

メリット
  • JavaScriptで画面遷移なしにサーバーと通信可能で柔軟な動作のRIAを実現可能
  • ユーザーの利用環境にプラグイン不要
デメリット
  • ブラウザの各バージョンに対応するクロスブラウザ対応が必要
  • プログラムがユーザーに丸見えになる

データ転送形式について

Ajaxの「X」はXMLだといわれているがデータ形式XMLでなくても問題ない

  • XML
    • XML形式でデータを作成してサーバーよりリクエストを返す
  • テキスト
    • サーバー側でHTMLを生成してデータを返すなどするとJavaScriptで面倒な処理を行う必要がないかな?
  • JSON(JavaScript Object Notation)
    • 軽量型データ交換フォーマットでテキストベースのフォーマット
    • {オブジェクト名:値}
    • JavaScriptでの読み込み方
  var data = eval("JSONデータ")
  Data.オブジェクト名

備考

非同期処理をJavaScriptで記述するとソースコードが丸見えになってしまうのが気になるところです。
このためJavaScriptの隠蔽化が必要になると思います。
もっとも完全な隠蔽化は不可能ですが・・・。
方法としてはJavaScriptの外部ファイル化です。
(外部ファイルはキャッシュされるのでパフォーマンスも向上する。)

  ただし、HTMLにURLが表示されるので直接アクセスされると意味がない
  よって、CGIを外部ファイルとして呼び出し、CGIからJavaScriptを生成する。
  (外部ファイルはjsファイルでなくても良い。)
  CGIで特定のページ以外からのアクセス時はJavaScriptを表示しないようにする必要があります。

  といってもIEで「名前を付けて保存」すると外部ファイルも保存されるので意味ないか?