今回は、もう少し掘り下げて 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
- アドビ システムズ
「経営が知るべきバズワード」 の新着情報
-
グーグル、「Google Buzz」を発表--Gmailのソーシャル機能を強化
グーグルは米国時間2月9日、「Gmail」でソーシャル機能の強化を図れる「Google Buzz」を発表した。すべてのGmailユーザー向け... - 仮想化インフラの100%普及を目指す--ヴイエムウェアの意気込み
- Google AppsとOracle CRM On Demandが連携:オラクルとi3Systemsが協業
- IBM、「POWER7」搭載の新システムを発表
- 富士通、SQL ServerベースのDWHシステム最適化ソリューションを販売開始
- 経営が知るべきバズワード 一覧へ »
「魅力のAjaxライブラリAdobe Spry入門」 のバックナンバー
-
Adobe SpryとDreamweaver CS3であのエフェクトもサクサク:魅力のAjaxライブラリAdobe Spry入門
Spryは、ライブラリ単体でみても非常に優れたライブラリであるし、前回紹介した通り非常に簡単なスクリプトで、さまざまな動きを実現することができる。今回はこのSpryとDreamweaver CS3を使ったSpryの実装を紹介していこう。 -
あのエフェクトがこんなに簡単に:魅力のAjaxライブラリAdobe Spry入門
-
まずは体感:魅力のAjaxライブラリAdobe Spry入門
- 魅力のAjaxライブラリAdobe Spry入門 一覧へ »
企画特集

-
新しい視点のレンタルサーバが誕生!
スタートアップ企業、開発者に最適なそのポイントとは? -
仮想化をダメにするストレージの実態
求められるストレージ正常化のキーワードとは? -
身近な業務をCRMが変革!
実は、埋もれた情報が鍵だった -
御社はまだフリーの転送サービスですか?
大容量ファイルの受け渡しに「ルール」と「安心」を -
事例 VMwareでデータセンターをクラウド化
富士通の開発環境を効率化したクラウドのノウハウ -
経営統合後の事業損益構造の見える化を実現
SAS Performance Managementの導入事例紹介!! -
通販サイトのアクセス集中からの危機を救う
4つのケーススタディからWebシステムを徹底解説 -
仮想環境のバックアップは難しいのか
効率的なバックアップへの2ステップを解説 -
アンケートから見るセキュリティ対策の実態
8つの機能が中小企業の情報資産を守る -
レガシーアプリケーションの稼働どうしてる?
互換性の問題、あなたはどう考える?意見募集中! -
DBのパフォーマンスに困ってませんか?
既存のデータベース環境に追加するだけで性能が2倍に -
アプリケーション仮想化 3つの課題
最新のCosminexus V8.5の知られざる実力 -
利用者の理想を追求した最新レンタルサーバ
サイト制作事業者がその評価結果を徹底レポート! -
ビジネスを支えるWebシステム最前線
システムトラブルの6割が、ソフトウェアに原因あり
-
17. Intel Threading Building Blocks
オライリーブックから出版されている「Intel Threading Building Blocks... -
18. Intel Integrated Performance Primitives
単に最適化コンパイラを使うよりもパフォーマンスを良好にするルーチン...
新着企業動向
-
ウイングアーク、ユーザー会への「新規入会促進プログラム」を実施
ウイングアーク テクノロジーズ -
SANS SECURITY 560「Network Penetration Testing and Ethical Hacking」
NRIセキュアテクノロジーズ -
【EMCジャパン Tech Communityサイト】ITの全体最適化はインフラから
EMCジャパン -
Nokia IPシリーズ
アズジェント - 企業動向一覧へ»
