クライアントサイド技術

とても弱い。javascriptをちょっとかじった程度。
現状のしょぼい理解を書いて恥をさらし、いたたまれなさをバネにいろいろ勉強して修正していこうと思う。


Webアプリの世界においては、PHP,Perl,Ruby,Python,(Java)はサーバサイドの技術。Webサーバ上で動作し、ブラウザからのリクエスト対し状況に応じたHTTPレスポンス(HTMLファイルと思っても)を返す。ユーザはそのHTMLソースを見てもその処理の痕跡を読み取れない。
それに対してクライアントサイド言語はHTMLの一部として記述されブラウザがそれを解釈して実行する。つまりHTMLソースを見ればコードを読める。動的なGUIによるユーザビリティの向上、コンテンツ制御による表現力の向上などが主な目的となる(RIAとか呼ばれてるそうな)。




具体的に書いてくと、親玉としてjavascriptflashがいて、派生技術がいっぱい、というイメージ。

読み込まれたページの構造をDOMと呼ばれるインタフェースを使って動的に書き換える。
Javaに似てて習得しやすい、と思ったら大間違い。実行形態、クラスや関数の考え方、スコープ、かなり特殊で難解な言語だと思う。

Asynchronous JavaScript + XMLの略、だけど派生技術がいろいろ出てきて今は言葉通りにはとれない。当初は「javascriptでHTTPXMLRequestを使ってサーバサイドAPIからXML形式のレスポンスを取得、それに基づいてDOMを操作しページの一部を動的に変更する。」という理解でよかったんだけど。まぁ本質的な動作はかわらない。

ブラウザ差異を吸収した様々な機能を提供するライブラリ。

adobejavascriptとは違い、ブラウザに組み込まれたプラグイン(プレーヤ)上で動作する。あくまでHTMLの一部であり、HTML構造を動的に変化させたりはしない。
動画などのマルチメディアコンテンツを扱うのに向く。

flashを作成する環境、フレームワークのこと?

flashをオフラインアプリとしても動作可能とする環境。

MicroSoft。仕組みはflashと同じ?