Aptana JaxerでサーバサイドJavaScriptを始めてみよう!

第1回 Aptana Jaxerとは?/Jaxerのここが素敵

この記事を読むのに必要な時間:およそ 2 分

Apatna Jaxerとは?

サーバサイドJavaScriptとは,その名の通りサーバ側で実行するJavaScriptのことです。

JavaScriptはクライアントのブラウザ上で実行するもの,というイメージが強いので,サーバ側で実行すると言われても,ピンと来ない方も多いかもしれません。

サーバサイドJavaScriptのエンジンは,いくつかのプロダクトが登場しています。Javaによる実装のRhinoやCによる実装のSpidermonkeyは,その代表格になります。

先日,統合開発環境Aptana Studioで有名なAptana社が,サーバサイドJavaScriptを実現する"Ajaxサーバ"Aptana Jaxer(以下,Jaxer)を発表しました。

Ajaxサーバ,とは耳慣れない言葉ですが,Jaxerの特徴をずばりと言い表すために作った造語だと思います。Jaxerを利用すると,Ajaxアプリケーションをシンプルに作ることができます。

本連載では,Jaxerの特徴から,簡単なサンプルアプリケーションの構築までを解説していきます。

Jaxerのここが素敵

まず手始めに,本家Jaxerのサイトに書かれているJaxerの特徴から,サーバサイドJavaScriptのメリットを挙げていきたいと思います。

1.たった1つのファイルでAjaxのアプリケーションやプレゼンテーションレイヤを全て記述できる

JaxerのコードはHTMLに,以下のように記述します。

<body>
  <script runat="server"> ... </script>
  <script runat="both"> ... </script>
  <script runat="client"> ... </script>
  <script runat="server-proxy"> ... </script>
</body>

※html,headタグは割愛しています。

パッと見て分かるように,scriptタグにrunatという属性が拡張されています。このrunat属性は,そのscriptタグ中のコードをサーバとクライアントのどちら側で実行するかを指定するものです。

それぞれの値の意味は以下のようになります。

  • server:サーバのみで利用されるコードを記述します。ここに記述した内容は,ページ出力時にカットされ,ユーザは見られないようになっています。
  • both:サーバ,クライアントの両方で利用されるコードを記述します。

  • client:クライアントのみで利用されるコードを記述します。runat属性を省略した場合は,runat="client"と同じ処理になります。
  • server-proxy:クライアントからサーバ側での処理を呼び出したいとき,ここに記述します。ページ出力時にはクライアント側からサーバへ関数をコールする内容に置き換えられます。

runatの値がserverとclientだけなら,PHPとあまり変わらないかも知れませんが,server-proxyという値を利用することにより,ページ表示後にAjaxでサーバ側と非同期通信する部分のコード量/ファイル数が激減します。

例えば,ページ表示後,Ajaxでサーバにアクセスして情報Aを取得しようとしたとき,PHPで実装すると,表示ページと情報Aを返すページの2つのphpファイルが必要になり,JavaScriptの中でもいちいちAjaxのコードを書かなければいけませんが,Jaxerでは情報Aを返すだけのページや,Ajaxのコードを書く必要はなくなります。

2.サーバサイドのJavaScriptでDOMが利用できる

Jaxerでは,サーバサイドでのDOM操作が可能になっています。

つまり,Prototype.jsやjQueryなどのライブラリを,サーバサイドで利用することができるのです。

例えば,値'foo'をid="hoge"のdivタグのテキストノードに指定したい場合,

document.getElementById('hoge').innerHTML = 'foo';

と書くことができます。サーバサイドでjQueryを利用すれば、さらに

$('#hoge').text('foo');

とより簡単に書くことが可能です。

これまでクライアントサイドのJavaScriptで培ってきたテクニックを,そのままサーバサイドのJavaScriptで活かすことができます。

ただし,ライブラリなどは完全にはサポートされていないので注意が必要です。jQueryのサポート状況は,Jaxerに付属しているjQueryのテスト実行ページで確認することができます。

著者プロフィール

栗栖義臣(くりすよしおみ)

TIS株式会社 主任。鹿児島県出身。大阪大学大学院工学研究科にて原子力工学を専攻。卒業後,TISで主にJavaの開発案件に携わる。 SUN × Recruit主催のmash up award 2ndにて「サグール賞」「きざし賞」「特別賞」を受賞(asso-ball.networdarium.net)。iGoogleガジェットコンテストで「特別賞」を受賞(U.T.)。ブログは「でぃべろっぱーず・さいど」。

URLhttp://dev.chrisryu.com/

コメント

コメントの記入