Aptana Jaxerのアーキテクチャ:“JavaScriptだけ”を可能にする仕組み
白石俊平
2008/02/04 16:15
今回は、Jaxerのパワーを如実に表す例を紹介した後、さらに高度なJaxerプログラミングを行うための布石として、Jaxerのアーキテクチャについて簡単にお話ししたい。
JavaScriptコードはどこで実行される?サーバ?ブラウザ?
先ほどの例のように、サーバのロジックとクライアントのロジックがシームレスに統合される、というのがJaxerの素晴らしい特徴だ。
ここで、「そのJavaScriptコードはどこから呼び出すことができ、どこで実行されるのか?」をしっかり考えてみよう。前回は、サーバサイドで実行されクライアントからは呼び出せない、というJavaScriptコードの例を取り上げた。今回は、サーバサイドで実行されるがクライアントから呼び出すことができる。また、通常通りクライアントで実行されるJavaScriptコードも存在する。
こうした、JavaScriptコードが定義/実行される位置を指定するために利用するのが、<script>タグに付与するrunat属性だ。
runat属性は以下のような値を取ることができる。
- server:サーバ上で実行され、クライアントから呼び出すことはできない。クライアント側には、一切コードは見えない。
- server-proxy:サーバ上で実行され、クライアントから呼び出すことも可能。クライアント側には、サーバ側のコードを実行するためのプロキシメソッドが公開される。
- client(もしくはrunatを省略):通常通り、クライアント(ブラウザ)上で実行される。
- both:サーバ、クライアントの両方で同じコードを共有する。入力値のバリデーションコードや、サーバ/クライアントどちらでも使用可能なフレームワークなどに使用する。
- both-proxy:「both」と「server-proxy」をあわせたような効果。コードはクライアントに公開され、クライアント上で実行される。サーバ上の関数を呼び出す場合には、「Jaxer.Server.関数名()」で呼び出す。
またこれらのほかにも、「both-nocache」と「server-nocache」という値が利用できる。これらは、「サーバ上のコードをキャッシュせず、毎回読み込み直す」というオプションだ。
Jaxerプログラミングを行うにあたっては、目的に応じてこれらrunat属性を使い分けることが重要となる。
- 特集: JavaScriptだけで作るWebアプリ―Apatena Jaxer (3件)
米フォレスター・リサーチ社 シニアアナリスト Jeremiah K.Owyang氏を迎え、同氏が提唱するソーシャルテクノロジーを効果的に活用方法するための方法『POST』を日本で初めて紹介する注目のリアルイベント
- 今日のトップ記事
- 昨日
- 2日前
- 5日前
- 6日前
- 7日前
- ホワイトペーパー
- 話題のタグ
Apple
Webサービス
ソフトウェア開発
Off Topic
Webデザイン
iPhone
iPhone 3G
iPod touch
モバイル
仮想化ソフトウェア
Database
入門
携帯電話機
Mac OS X
ユーザーインタフェース
Adobe
Windows
JavaScript
仮想化
Firefox
リファレンス
Firefox 3
Safari
ブラウザ
脆弱性
小技
HTML
Tips
プロジェクト管理
データベース
RIA
CSS
Java
開発環境
Google
Ajax
Mozilla
Python
PHP
SOA
Internet Explorer
UI
オープンソース
Linux
レビュー
デザイン
server
Flash
Webアプリケーション開発
プログラミング言語
話題のタグを見る »
ソーシャルテクノロジーをビジネスに利用する
Mozilla Labs、Firefoxで地理情報を認識活用できるプラグイン「Geode」を正式発表
DelphiのパフォーマンスをDelphiで改善:エンバカデロの製品戦略
社内政治を生き抜くための教訓10箇条
iPhoneでVoIP--Fringを早速試す
Firefox 3のブックマーク構造を理解しよう
ウェブページの段組みをレイアウトするCSS 3のMulti Column
ラウンドアップ:「優れたUI」を実現するためのアプローチ
MSのバルマー氏、「Windows Cloud」の発表を示唆
Techno Exchange
ZDNet Japan Green IT
これからの時代のセキュリティ対策
KDDI「SaaSソリューション」
エンタメCGM「gooメーカー☆メーカー」
グリーンITの第一歩は見える化です