今回は、もう少し掘り下げて 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
- アドビ システムズ
「経営が知るべきバズワード」 の新着情報
-
オープンソースの動画コーデック「Theora」、HTML 5での仕様策定が挫折
ウェブコーディング標準「HTML 5」を管理するグーグルの担当者は、アップルの反対などにより、HTML 5で「Ogg Theora」を動画... - 日立ソフト、「SecureOnline 出前クラウドサービス」発表--導入負担を軽減
- SAP、GRCソリューション最新版を発表--コンプライアンスは経営の要と説く
- マイクロソフト、分散アプリサーバ「Dublin」のテスター受付開始
- サイオス、企業のOSS活用によるコスト削減を支援する「OSSワンストップソリューション」提供開始
- 経営が知るべきバズワード 一覧へ »
「魅力の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入門 一覧へ »
ZDNet Japan Essential Topic
-
ストレージ、イチから勉強しませんか?
ネットワークに仮想化、ストレージの流行も教えます -
仮想化、復習しませんか?
この特集で仮想化のパターンがわかります
企画特集
-
インターネット上の悪意を未然に防ぐには?
ブラウザに備わったセキュリティ機能を徹底解説 -
ロリポップ!がリニューアル
【第1回】創業者の家入一真氏が語る誕生秘話!! -
SOA、BPM、SaaS −今、企業に必要なこと
ビジネス・アプリケーションの今を網羅する特設サイト -
【徹底対談】運用管理ツールの賢い使い方
市場背景〜仮想化管理までアナリストが解説! -
マネジメントの「コラム」と「コネタ」
今日のキーパーソンは誰? -
◆エン・ジャパン厳選求人☆毎週更新◆
不況下でも急成長の秘訣とは?注目企業の取組みも公開! -
パンデミック対策特集
2009年のパンデミック発生から再考する事業継続計画 -
そのストレージで仮想化に対応できますか?
メリット盛りだくさんのサンのオープンストレージ製品 -
集積度も性能も、業界最高水準のブレードPC
サーバの実装技術を、シン・クライアントへ応用 -
ESBでIT投資の無駄を劇的に解消する
IBM IMPACT 2009を徹底レポート! -
仮想環境を実現するソリューション特集
仮想化導入時、こんなところ気にしてますか? -
中小企業のセキュリティリスクとは?
導入する側・される側 得するセキュリティ製品 -
今注目の「サジェスト検索」−デモ掲載中
システムのユーザビリティに革命を起こす技術とは -
ストレージメディア特設サイト開設
仮想化環境において最適なソリューションを! -
セキュリティ&ユーザ事例【SIer Club】
最新のセキュリティ情報と提案事例が満載 -
サービス・ドリヴン・データセンター
コスト効果の高いデータセンター構築には? -
サーバー監視・運用のコストを削減するには
エージェントレス方式を用いたパトロールクラリスで -
エンタープライズにおけるSUSEの強み
次世代データセンターの基盤は11だ。 -
■ストレージ容量50%削減保証■
ネットアップによる削減保証キャンペーン実施中
ZDNet Japanからのお知らせ
- ご回答にはCNET_IDご登録が必要です。
-
15. プラグマフリー構文
この4分間のビデオは、プラグマ構文を知らなくてもOpenMPディレクティブ... -
16. 並列性の用語定義
この6分間のビデオでは、このシリーズのビデオを通じて使用される用語を...
新着企業動向
-
[セミナー後記]「今、求められるWebディレクター」
キノトロープコンサルティング -
待ったなし!会計基準の国際化対応 緊急セミナー
NTTソフトウェア -
ラピッドサイト VPS 新プランリリース(月額7,350円〜)
GMOホスティング&セキュリティ -
SecureCube / PC Check
NRIセキュアテクノロジーズ - 企業動向一覧へ»
サーバやOS、アプリケーションなどの世界ではオープンソーススタンダードが市場を牽引する現在、ストレージの世界でもオープン化の流れが始まっている。
幸い今回は弱毒性で大事には至らなかったが、まだ油断はできない。企業活動を停止すると、大きな経済的損害や社会的信用の低下を招いてしまう。 
