今回は、もう少し掘り下げて Spryの魅力を紹介していこう。
シンプルなファイル構成
JavaScript ライブラリは、Webページに組み込んで利用するため、その分だけWebページのサイズが大きくなってしまう。そのため、不必要な機能は組み込まなくて済むようにしたり、自分に必要な機能だけを選んでファイルを作れるようになっているものもある。しかし、ダウンロードするファイルが数十MBに及んでいることがあったり、機能を付け足す度にライブラリをダウンロードし直す必要があったりする。
Spryの場合、ダウンロードして解凍した状態では8MB弱。実際のライブラリファイル等は1MB程度でアップロードすることができる(図1)。また、「SpryEffects.js」「SpryHTMLDataSet.js」など、わかりやすい機能名でファイル名がつけられているため、必要な機能のファイルだけを的確に参照することができる。一つ一つのファイルは、100KB程度なので、参照してもほとんど気にならないサイズなのが魅力だ。
図1:ライブラリは1MB足らずと軽量
簡単な記述
Spryは、「デザイナのための」と銘打つだけあって、非常に簡単な記述でスクリプトを作ることができる。JavaScriptはほとんど使わずに、できるだけHTMLの拡張属性や独自の記述でまかなおうという努力が見える。
例えば、<div>要素をフェードインで表示させたい場合、他のライブラリではオブジェクトを作って、そのプロパティに何かを設定して…といった、複雑な工程を経るものも少なくない。しかし、Spryの場合は簡単に作ることができる。実際に以下のソーススクリプトをコピーすれば、動作させることができるので、実際に試してみてほしい。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<title>フェードアウトのサンプル</title>
<script type="text/javascript" src="includes/SpryEffects.js"></script>
<script type="text/javascript">
window.onload = function() {
document.getElementById('areaTarget').onclick = function() {
new Spry.Effect.DoFade('areaTarget', {duration: 500, from: '100%', to: 0});
}
}
</script>
</head>
<body>
<div id="areaTarget" style="background-color: #66CCFF; width: 100px; height: 100px; padding: 5px; font-size: 0.8em">クリックすると、このエリアがフェードインします</div>
</body>
</html>
これで、領域のフェードアウトの処理を作ることができた(図2)。上記の一文を見るだけで、スクリプトに慣れた人なら何をやっているかわかるはずだ。上記は「ID属性が"areaTarget"の<div>要素を、500ミリ秒の早さで、100%から 0(%)までフェードアウトする」という意味である。
図2:フェードアウト処理
また、「XMLを読み込んで、ページ内に表示する」という一見複雑そうなスクリプトについても、以下のようなスクリプトで実現することができる。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<title>XMLを読み込む</title>
<script src="includes/xpath.js" type="text/javascript"></script>
<script src="includes/SpryData.js" type="text/javascript"></script>
<script type="text/javascript">
var ds1 = new Spry.Data.XMLDataSet("data/scores.xml", "teams/team");
</script>
<style type="text/css">
table,
th,
td {
border: 1px solid #999999;
border-collapse: collapse;
}
th {
background-color: #CCCCCC;
}
.score {
text-align: right;
}
</style>
</head>
<body>
<div spry:region="ds1">
<table border="1" cellpadding="3" cellspacing="1" summary="golf score">
<tr>
<th>名前</th>
<th>1ラウンド</th>
<th>2ラウンド</th>
<th>3ラウンド</th>
<th>4ラウンド</th>
<th>5ラウンド</th>
</tr>
<tr spry:repeat="ds1">
<td>{name}</td>
<td class="score">{round1}</td>
<td class="score">{round2}</td>
<td class="score">{round3}</td>
<td class="score">{round4}</td>
<td class="score">{round5}</td>
</tr>
</table>
</div>
</body>
</html>
これだけで、XMLファイルを読み込んでテーブルに表示させることができる(図3)。驚くことに、JavaScriptのスクリプトは1行だけで済んでいる。スクリプトの代わりに利用しているのが、「spry:」から始まる拡張属性をHTMLタグに記述することだ。こうして、デザイナやマークアップエンジニア(HTMLコーダー)でも簡単にJavaScriptを使ったスクリプトを作ることができるというわけだ。
図3:XMLファイルを読み込んでHTMLテーブルとして表示
とはいえ、この辺りは賛否両論があり、デザインとスクリプトの分離という考えやスクリプトの応用性を考えると、必ずしも好ましい作り方とはいえない。このあたりは、好みの分かれるところといえるだろう。
関連情報
-
Web IDE AptanaのAdobe AIR対応を試す
AptanaはAptanaの提供するEclipseベースの統合開発環境。HTML/XML/CSS/JavaScriptなどの編集に対応し、FTPクライアントの機能も統合するなどWeb開発に特化している。本稿ではAptanaが提供する機能のうち、最近特に注目を集めているAbobe AIRに関する開発支援機能にフォーカスしたレビューをお届けしたい。 - アドビ、「Adobe Integrated Runtime」(AIR)のベータ版をリリース
- Webサイトデザインを省力化--CSSフレームワーク「Blueprint 0.5」
- Adobe Systems
- アドビ システムズ
「経営が知るべきバズワード」 の新着情報
-
インフォア、“二重帳簿なIFRS”に対応する「複数元帳」機能を提供へ
日本インフォア・グローバル・ソリューションズは、国際会計基準(IFRS)に対応したコンポーネント「Infor Advanced General ... - NECと日本オラクルが協業を強化--中小規模向けワンストップDWHソリューションを提供
- アステラス製薬がWindows 7を早期導入する理由--バルマー氏がCIO向けに講演
- Hadoopが秘める可能性:オンプレミスでもクラウドでも使えるプラットフォームの魅力
- CTC、シンクライアントシステム拡充--Windows Server 2008 R2の仮想化技術活用
- 経営が知るべきバズワード 一覧へ »
「魅力のAjaxライブラリAdobe Spry入門」 のバックナンバー
-
SpryとAIRもDreamweaverで楽々
今回はSpryをAdobe Integrated Runtime(AIR)で利用する方法を解説しよう。Adobe Dreamweaver CS3を利用していれば、拡張機能で簡単に作業することができる。 -
Adobe SpryとDreamweaver CS3であのエフェクトもサクサク:魅力のAjaxライブラリAdobe Spry入門
-
まずは体感:魅力のAjaxライブラリAdobe Spry入門
- 魅力のAjaxライブラリAdobe Spry入門 一覧へ »
企画特集
-
最大32個のセンサーが電力を徹底管理!
『省エネ性能』追求HPx86サーバー徹底レビュー -
企業ITシステムの企画、構築、運用のイロハ
戦略的なITシステムのために、今考えるべきポイント -
100万円で実現!中小企業の情報漏えい対策
中小企業の課題!?セキュリティ管理者不在でも大丈夫 -
求めているのはSIerのエンジニア!!
連載インタビュー第1話、グリーCTO藤本氏が語る -
進むストレージ環境の見直し
仮想環境に最適なiSCSIストレージLeftHandのメリット -
【最終警告】パンデミック対策特集
サービス品質を保証するためのリスクマネジメントとは -
マネジメントの「コラム」と「コネタ」
今日のキーパーソンは誰? -
―エン・ジャパン厳選求人☆毎週更新―
ハンゲームの社長が語る・人材とサービスの在り方 -
大丈夫?あなたの会社のセキュリティ対策
中堅・中小企業のネットワーク・セキュリティを考える -
急増するオンライン犯罪への解決策!
オンラインサービス保護ソリューション -
VMware OEMベンダー6社を独占インタビュー
IBM、HP、NEC、DELL、日立、富士通のVMwareの取り組み -
情報漏えいを食い止める!
証跡としての信用力を高めるメールアーカイブとは? -
J-SOX法制定により内部統制の整備が急務に
重要性高まるActive Directoryの課題と対処法を公開中
-
15. プラグマフリー構文
この4分間のビデオは、プラグマ構文を知らなくてもOpenMPディレクティブ... -
16. 並列性の用語定義
この6分間のビデオでは、このシリーズのビデオを通じて使用される用語を...
