JavaScriptだけで作れるAjax Webアプリ:Aptana Jaxerクイックスタート

白石俊平(あゆた)
2008-02-01 17:05:00
  • このエントリーをはてなブックマークに追加
最新特集【一覧】

Aptana Jaxerの概要

 高品質なAjax用IDEをリリースしていることで有名な「aptana」プロジェクトが、無限の可能性を感じさせる「熱い」製品をリリースしてくれた。それが「Jaxer」だ。

 「Jaxer」は、aptanaプロジェクトによれば「Ajaxサーバ」と位置づけられている(あまりピンとくるキャッチフレーズではないが……)。Jaxerの概要を簡潔に表すならば、「サーバサイドJavaScriptを実現するためのサーバ/フレームワーク」となるだろう。

 サーバサイドJavaScriptを実現するプロダクトは、Jaxer以外にも多くある。そんな中、Jaxerが実現するサーバサイドJavaScriptには次のようなメリットがある。

  1. ブラウザで動作するJavaScriptコードと、サーバサイドJavaScriptコードをシームレスに統合できる。 サーバサイドで動作する関数をクライアントから普通に呼び出し、戻り値を受け取ることができる。サーバサイドのロジックとクライアントのロジックを別ファイルに保存する必要すらない。恐ろしいほどの見通しの良さを実現できる。
  2. サーバサイドのロジック内で、Webページ中のDOMにフルアクセスできる。 Jaxerの特色で最も強烈だと思えるのがこれだ。サーバサイドのJavaScriptコード内で、ページのDOMにアクセスし、変更することができる。これにより、Prototype.jsやJQueryなど、主要なJavaScriptフレームワークをほぼそのままサーバサイドで使用し、DOM操作を行うことが可能だ。
  3. 他の言語(JavaやPHP、Rubyなど)によって生成されたHTMLにアクセスして変更することも可能 これは2とも関連しており、Jaxerのアーキテクチャに関わる問題だ(アーキテクチャについてはいずれ詳しく説明する)。とりあえずこの事実により、既存の言語/フレームワークとの共存が非常に容易で、役割を分担することも可能だ。
  4. クライアントとサーバで、入力値のバリデーションを行うコードを共有できる 1や2の結果として、サーバサイドとクライアントサイドで全く同じロジックを共有することができる。その効果の最たるものが、バリデーションコードの共有だ。Webアプリでは、不正なデータがポストされないようサーバ側でバリデーションを行うのは当然ながら、ユーザの利便性を考えてクライアント側でも入力値を検証することが多い。Jaxerを使えば、クライアント側とサーバ側で全く言語(JavaScript)を使用できるので、コードの共有が行える。
  5. データベースやファイル、ソケットなどを利用できる あくまでサーバサイドの話ではあるが、こうした機能をJavaScriptから利用できる。他にもメールを送信したり、ログを残したり、他のサーバに対するHTTPリクエストを行う、なども可能だ。

 こうした様々な魅力を持つJaxerについて、3回にわたって解説を行うこととする。

 今回は導入編ということでインストールと簡単なプログラムの書き方を学び、次回はJaxerプログラミングについてさらに詳しく解説する。最後となる三回目は、単純なログイン処理を行うJaxerアプリケーションを作成することで、Jaxerが持つAPIについて、広く浅く学んでいきたいと考える。

  • 新着記事
  • 特集
  • ブログ