第26回 「言葉」を超えた説得力を持つAjaxの存在感と広がり
株式会社ピーデー
川俣 晶
2007/10/24
そのほかの見どころ
- - PR -
Ajaxとそれに関連する話題を紹介します。
■ Ajax/JavaScript技術のシェアはどうなっているのか?
アメリカで有名なAjax情報サイトである「Ajaxian.com」の読者調査の結果が公開されています。フレームワークの割合を見ると、やはりprototype.jsやscript.aculo.usの存在感が強く印象に残ります。
言語/プラットフォームを見ると、JavaScript/ECMAScriptの圧倒的な存在感は異質なものとして、そのほかJavaすら圧倒するPHPの存在感の大きさが印象に残ります。逆に、複数のプログラム言語に数字がばらけてしまったマイクロソフト系の技術は、相対的に実態よりも小さな数字に埋没してしまった感があります。
■ そろそろ、E4Xに注目すべき時が来た?
E4Xは、JavaScript/ECMAScriptに対して、直接XMLを扱う機能を追加する標準です。正式名を「ECMA-357 ECMAScript for XML (E4X) Specification 2nd edition」と呼びます。これをnanto_viさんが日本語訳した文書が公開されています。
![]() |
| ECMA-357 ECMAScript for XML (E4X) Specification 2nd editionのページ |
さて、E4Xは重要な意味を持つ技術だと思います。なぜかといえば、JavaScriptからXML文書を扱うプログラミングが比較にならないほど簡単になるからです。簡単になるということは、実はこれまでXMLに対して圧倒的に優勢だったJSONという図式が揺らぐことを意味します。JSONがあればXMLは要らない…… というのは単なる根拠のない思い込みであって、XMLにできてJSONにできないことはいくらでもあります。それ故に、XMLが簡単に使えるようになりさえすれば、それによって切り開かれる使い方もあるでしょう。
ちなみに、現在E4XはFirefoxやRhinoに実装されていますが、Internet Explorer(以下、IE)では実装されていないため、実際のAjaxシステムで使うのは時期尚早といえます。
編集部注:Rhinoについて詳しく知りたい読者は、Java Solutionの記事「JavaとJavaScriptの親しい関係」をご参照ください。
それにもかかわらず、そろそろE4Xに注目しても良いのではないか……と思う理由は、別にあります。それは、IEも含めた大多数のWebブラウザでE4Xを使う方法があるからです。そんなばかな…… と思う読者もいるかもしれませんが、それはあります。果たしてそれは何でしょうか?
答えはFlashのスクリプト言語であるActionScriptを使うことです。ActionScriptは、未来のJavaScriptそのものといってもよい言語です。そして、プラグインは非常に多くのWebブラウザ上にすでにインストールされています。これを相手にサービスを作成するなら、E4Xはいますぐ使える技術なのです。
編集部注:FlashとActionScriptについて詳しく知りたい読者は、「いまさら聞けない! FlashとActionScriptについて」をご参照ください。
■ JavaとEclipseでAjaxアプリケーションを作成
![]() |
| Rich Ajax Platform(RAP)のトップページ |
RAPは、Eclipseのコンポーネントモデルに従ってAjax対応のRIAが作成できるプラットフォームです。Eclipseファウンデーションによって正式版が発表されました。これはAjaxを扱うJavaプログラマには喜ばしいニュースでしょう。
■ 懐かしいMMLを使い、ドレミファソラシをAjaxで
これは、まさにAjaxは何でもありの世界だ…… という現状を示す好材料と感じたので取り上げます。
MMLというのはMusic Macro Languageの略で、簡単な表記で音楽を記述する言語です。といっても難しいものではありません。「ドレミファソラシ」の音階を「CDEFGAB」の文字で表記して並べるだけです。
例えば、「ドレドレド」なら、「CDCDC」と書くだけです。パフォーマンスが低い初期のパソコンではよく使われていましたが、いまでもニーズがあります。素晴らしい音楽を手間暇惜しまず作ろう…… というのではなく、単純なメロディーを手軽に流したい場合には、結構便利で使えるものです。これをAjaxから使用できるようにしたライブラリが上記のページで紹介されています。
さて、ここでのポイントは、実はMMLではありません。本来はFlash用として作られたライブラリに、JavaScriptへのブリッジを付けて呼び出し可能にした…… という対処方法こそが、何でもありのAjaxにふさわしいやり方だと感じました。このような仕組みは、Flashプラグインなしでは動作しないというハンデを与えてしまいますが、その代わりとして便利な機能を手軽にサービスへ取り込めるというメリットを生みます。
■ たった1行のコードでJavaScriptプログラムを高速化!?
非常に面白い技術トピックなので紹介します。
まず表面的な効能を簡単に説明すると、ある1行をすべてのJavaScriptコードより先に読み込むと、それによってIEでのdocumentへのアクセスが5倍速くなるといいます。常に効能があるとは限りませんが、非常にお手軽なパフォーマンス改善手法です。
次に、なぜ高速化するのかという理由ですが、これはプロパティへのアクセスが遅いので、プロパティの値を同名の変数に入れ直しておくという仕組みによります。
変数に入れておけば速くなるのは当たり前だろう! と思った人がいるかもしれませんが、本当に面白いのはここから先です。JavaScriptのスコープの仕様上、ある名前の変数を宣言してしまうと、それが同名のプロパティを隠してしまい、アクセスできません。この問題を回避するために、「evalでvar宣言することでスコープ途中から変数を生成することができる」というテクニックを使用しています。
これまで、同じ名前での宣言はプログラムを分かりにくくするので避けた方がいい…… と反射的に考えて、いかにすれば宣言できるかはあまり考えていませんでした。しかし、このような効能を得るためなら、使う価値があるわけですね。
■@IT関連記事
| いまさら聞けない、“Ajax”とは何なのか? いまさら聞けないリッチクライアント技術(3) Googleマップで有名になり、もはやWebの定番といっても過言ではないAjax。その生い立ちや仕組み、構成技術について解説 「リッチクライアント & 帳票」フ ォーラム 2007/8/23 |
||
| jQueryを使ってTwitterをおいしくマッシュアップ パターンとライブラリで作るAjaxおいしいレシピ(1) jQueryを使ってTwitterのコメントをかんたんに表示するサンプルを見ながら、AjaxデザインパターンやMVCについて解説 「リッチクライアント & 帳票」フ ォーラム 2007/8/29 |
||
| AptanaでAjax・AIR・iPhone用ページの開発を行う どこまでできる? 無料ツールでWebサイト作成(2) AptanaはAjax開発にも便利な機能を発揮し、Eclipseベースなので、プラグインでさまざまな機能拡張も実現します 「リッチクライアント & 帳票」フォーラム 2007/9/13 |
||
| あなたのサイトはiPhoneで見られますか? 安藤幸央のランダウン(36) 携帯電話と違い、PC用のサイトも見られる小さな画面の端末が普及してきている。そんな時代のWebページはどうあるべきかを解説しよう 「Java Solution」フォーラム 2007/9/14 |
| いまさら聞けないJavaScript入門 いまさら聞けないリッチクライアント技術(2) Ajax技術が注目され大復活を遂げたJavaScript。しかし、復活するまでには数々の悲劇が…… さらに実例や使い方なども解説 「リッチクライアント & 帳票」フ ォーラム 2007/7/17 |
||
| より短いXMLコードでサーバ通信させるFlex2 Flex2でWebアプリ開発(最終回) Flexアプリケーションで「サーバ通信」を行う方法と、XMLの操作が簡単に短いコードで、パフォーマンスが向上させる「E4X」を紹介 「リッチクライアント & 帳票」フォーラム 2007/4/18 |
||
1-2 |
| INDEX | ||
| 第26回 「言葉」を超えた説得力を持つAjaxの存在感と広がり | ||
| Page1 世界的なイベント、「AjaxWorld Conference & Expo」を知ってますか?|コンテストの結果発表、そして「世界」へ|iPhoneでも存在感を示すGoogle | ||
| Page2<そのほかのみどころ> Ajax/JavaScript技術のシェアはどうなっているのか?|そろそろ、E4Xに注目すべき時が来た?|JavaとEclipseでAjaxアプリケーションを作成|懐かしいMMLを使い、ドレミファソラシをAjaxで|たった1行のコードでJavaScriptプログラムを高速化!? | ||
Ajax うきうき Watch バックナンバー
- 第1回 Webアプリのユーザビリティを改善しまくるAjax
- 第2回 Ajax、それはWeb 2.0へと続く道
- 第3回 どんなに無茶をやっても「それもありかな」なAjax
- 第4回 自動車業界のAjaxを活用したキャンペーンを目撃せよ
- 第5回 “どのブラウザでも動くAjax”を共有財産として育てよう
- 第6回 プロプライエタリ2.0から考えるAjaxの公開/非公開部
- 第7回 メモリリークが小さくなったGoogle Maps APIの新版
- 第8回 “CGUI” 消費者が作り出すUIの時代突入
- 第9回 巨大化するAjaxライブラリをシンプルにする新たな流れ
- 第10回 地図のように年代を移動できるMITのAjax歴史年表
- 第11回 JSONがRFCになり、どんどんこなれるAjaxサービス
- 第12回 サーバが通信を開始できるComet活用Webチャット
- 第13回 オンラインゲームで検索精度を上げるGoogleの巧みさ
- 第14回 IE7とFirefox 2への利用者の大移動は起こるか?
- 第15回 グーグル検索エンジンを特定ジャンル専用に、Co-op
- 第16回 帯域やデバイス領域をフル活用させる“モバイルAjax”
- 第17回 新しい技術を模索するYahoo!、Google、MS
- 第18回 Ajaxの高度な使用例、Yahoo! pipes
- 第19回 Apollo参戦でウィジェット開発者の争奪戦が激化
- 第20回 Twitter登場で注目されるRTコミュニケーションツール
- 第21回 過熱するTwitterブームとMicrosoftのマッシュアップ
- 第22回 iPhoneのAjax戦略、そして今日もWeb APIは増加する
- 第23回 Ajax開発者がヒーローになるとき、それはいま!
- 第24回 携帯電話への拡張を進めるGoogleとWeb隠しコマンド
- 第25回 Ajaxで加速!? エンタープライズ2.0とWebOSの普及
- 第26回 「言葉」を超えた説得力を持つAjaxの存在感と広がり
- 第27回 ゲームから読み解く、俺スクリプト時代の知的な挑戦
- 第28回 マッシュアップ元年が終わり、2008年はどうなる?
- 第29回 Twitterやクラウドへも分岐するAjax/Web APIの道
- 第30回 Ajaxはじめて物語、そしてサーバでも動くJavaScript
- 第31回 新ブラウザ戦争はon fireだがJavaScriptはoffのナゾ
- 第32回 Google App EngineはAjaxへのハードルを下げるか?
- 最終回 Pure JavaScriptの動画再生やRPGも好きでした
TechTargetジャパン
- 次のモバイルアプリはどのフレームワークで作る? (2012/5/24)
スマホアプリの開発を容易にするJavaScriptのフレームワークが続々と増えている。それぞれの良さや仕組み、何がどこまでできるのかを徹底解剖する - 「LESS&専用エディター」でCSSをシンプルに書こう (2012/5/23)
「LESS」はCSS初心者に向けた、シンプルなライブラリだ。「LESS」で、変数などのプログラミングの基礎的な考え方もCSSで学ぼう - 学校が世界一のデジタル環境になったら (2012/5/18)
授業はアーカイブに蓄積され、家からも見られる。家族が授業テーマのアイデアを出す。そんな姿が実現されるかもしれない - 1000万ドル調達も夢じゃないクラウドファウンディング (2012/5/15)
クラウドファンディングは、寄付型でも投資型でもない「購入型」が主流。商品を“開発する前に販売”して開発費用を集める逆転のシステムだ
|
|


