Google’s AJAX Libraries API
個人的に盛り上がっている、技術系ニュースを紹介します。──いや、世界中のウェブ業界が狂喜乱舞すべき、一大事件だと思います。
AJAX Libraries API – Google Code
なんと、下記に挙げる有名な JavaScript ライブラリたちが、Google のサーバから自由に読み込めるようになりました!
- jQuery
- prototype
- script.aculo.us
- MooTools
- dojo
- GoogleのAJAX Libraries APIでgzipなライブラリが手軽に利用できる – 0x集積蔵
- Google人気JavaScriptライブラリ配布開始、ネット全体でキャッシュ効果 | エンタープライズ | マイコミジャーナル
「──え、なにそれ。美味しいの?」という人は さておき──。
これがどれだけスゴいことか、想像するだけで興奮し、反響を気にするあまり、逆に記事にしてこなかったのですが、あんまり世間(どこ?)で騒がれていないことに絶望し、独りで わめきます。ギャーギャー。
JavaScript を圧縮・縮小
このブログで、いまだに人気なのが、Prototype.js を圧縮・縮小して読む込む、という記事。
いつものように、「人様が書いた記事を取り上げて、あわよくばホッテントリ」メソッド全開ですが、書き上げた当時は「これは良い記事を書いたな」と自画自賛していました。
いま見ると、これは Apache の知識がある人だったら常識、というか仕様に近い話ですよね……。「おい、みんな! 『.htaccess』を使うとリダイレクトができるんだぜ!」みたいな。
まぁ、ウソを書いているわけでもないし、叩かれることもなかったし、書いて良かったなぁ、と思います。
しかし、個人のサーバ、または借りているサーバで「やりくりする」よりも、「CDN」を利用できればベター。それも Google 様のサーバならモア・ベターよ、というワケです。
CDN とは
「YSlow」という、ウェブページの表示速度を改善するための指針を表示する、Firefox アドオン(拡張機能)が あります。このアドオンでも、CDN の使用を推奨していますね。
簡単に言うと、配信に適した専用サーバにファイルを置く、ということですね。
ref.: コンテンツデリバリネットワーク – Wikipedia
しかし、CDN は個人で作れるものではないワケです。自分が知る限り、有名な JavaScript ライブラリ(など)を配信しているのは、Yahoo! UI ライブラリくらいでした。
秋元@サイボウズラボ・プログラマー・ブログ: Yahoo UIライブラリの各ファイルがYahooから直接ホストされるように
ほかのライブラリも、CDN で配信してくれたら──、と思っていたので、今回のニュースは嬉しかったです。
google.lode()
Google’s AJAX Libraries API の中で、初めは意味が分からなかったのが google.lode()。何でわざわざ、読み込むためのコードを書くのか、と。
<script type="text/javascript"
src="http://www.google.com/jsapi">
</script>
<script type="text/javascript">
//<![CDATA[
google.load("prototype", "1.6.0.2");
//]]>
</script>
冒頭の「マイコミジャーナル」の記事を読んで分かったのですが、ライブラリのバージョンが挙がったときにも対応できる、ということですね。
ただ、上記の例だと、バージョンアップのたびに、ページに埋め込んだコードを直す必要があります。それなら、初めから google.lode() を外部ファイルに埋め込めば良いですね。
<script type="text/javascript"
src="http://www.google.com/jsapi">
</script>
<script type="text/javascript"
src="/path/to/prototype-load.js">
</script>
上記で読み込む、prototype-load.js の中身:
<script type="text/javascript">
//<![CDATA[
google.load("prototype", "1.6.0.2");
// バージョンアップしたら書き換える
// google.load("prototype", "2.0.0.0");
//]]>
</script>
実際に使うときは、google.lode() だけではなく、そのほかの記述もまとめて書いたファイルにするのが良いでしょう。
リダイレクトで良くね?
google.lode() も便利ですが、やっぱりコンテンツの書き換えが面倒、という人もいるでしょう。
なんとなくグレーゾーンのような気もしますが、.htaccess(など)でリダイレクトさせる、というのも有りかと。以前に書いた、下記の記事を参照して「分かる人」だけ使ってくれたら、と思います。
Yahoo! UI Library のホスティングに思うこと(Dojo) : 亜細亜ノ蛾
うーん、でも、これって、Google API から読み込む場合でもアウトですかね?(はてなから読み込むのは、完全にダメでしょう)
ローカルで良くね?
さらなるアイデアは、Proxomitron などを利用してウェブページを書き換え、各種 JavaScript ライブラリはローカルに置いたファイルを読み込む、という方法。
Google’s AJAX Libraries API は、利用する人数が増えればブラウザキャッシュからの読み込みが多くなり、サーバも利用者も幸せ、という図式があるのですが──、これから流行するのかは疑問。
だったら、初めからローカルのファイルを読み込むようにする、というアイデアですね。
で、実際の Proxomitron のフィルタは──、みなさんへの宿題ということで……(簡単にできると思うけど)。
まとめ
いっそのこと、いろんな JavaScript snippets(小片たち)も、Google タンが預かってくれたら──、と妄想すると鼻血ブーですよ。
──と、ここまで書いておいて、自分は Prototype.js も jQuery も、使いこなしていない──というか、使っていなかったり。
このブログのリニューアルした際には、ぜひとも Google’s AJAX Libraries API をバリバリ使うぞー!(いつになることやら……)