Born Neet
- The Emotional Programmer -
| Next Entry … j | Prev Entry … k |
| Next Page … J(Shift + j) | Prev Page … K(Shift + k) |
| Scroll Down … Space / Page Down | |
| Scroll Up … Shift + Space / Page Up | |
一応使ってみようとしたんだけど…。
何か画面が読み込み中のまま真っ白になる事態に遭遇して断念。
どうやら、ページ読み込み後にgoogle.load()を呼び出すのはNGらしい。
例えば、
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load('jquery', '1'); // いける
window.onload = function() { google.load('jquery', '1'); }; // ダメ
</script>
って感じ。
まぁ、動的に読み込みたい場合は、
'http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js'
とかを直接指定すればいい話ですけどね。
ホスティングしてくれるだけでも十分ありがたいし。
※ もう長ったらしい名前を書くのが面倒くなってきたので、今後は「Ajax Libs API」と勝手に呼ぶことにします(>_<)
早速使ってみようと、追加で調べたのでメモ。
- Google人気JavaScriptライブラリ配布開始、ネット全体でキャッシュ効果 | マイコミジャーナル
- この記事で存在を知った。これを読めば意味はわかるし、とりあえず使える。
- AJAX Libraries API
- 公式サイト。
- Developer's Guide - AJAX Libraries API - Google Code
- 公式開発者ガイド。情報量はイマイチ?
- jQuery ライブラリをホスティングしてくれる Google AJAX Libraries API - まちゅダイアリー (2008-05-29)
- setOnLoadCallbackの説明があってありがたかった。
- れぶろぐ - [Google][JavaScript] Google AJAX Libraries API の上手な活用法 , [SVG] SIE 0.24 がリリース
- YUIもyahooから読み込めるらしい。
- AJAX Libraries API (でぃべろっぱーず・さいど)
- 使ってみた。
いやぁ、皆さん仕事がはやいですね。
助かりますm(_ _)m
Google人気JavaScriptライブラリ配布開始、ネット全体でキャッシュ効果 | エンタープライズ | マイコミジャーナル
ということで、いろんなjsライブラリをgoogleから読み込めるようになったそうです。
<script src="http://www.google.com/jsapi"></script>
<script>
google.load("ライブラリ名", "バージョン番号(ワイルドカード可)");
</script>
とか書けばOKらしい。
(scriptタグに直でライブラリやバージョンも指定できるっぽいけど、それだとワイルドカードは使えないみたい)
こりゃ便利!
作る側も面倒なダウン/アップロード作業から開放されて、ユーザもキャッシュで多少なりとも早くなるってことで、Win-Win(笑)ってやつですか?
(確かにgoogleに依存してるけど、どうぜgoogleが落ちたらネットなんてほとんど使いもんにならんし…)
今後何か作るときは積極的に使っていこうっと!
これでブックマークレットからも気軽にライブラリが使えそうですね。
(もちろん競合とかは考慮しなきゃですけど…)
※ 全然関係ないけどgooshもおもしろそう。
Javaで作ったのでついでにjsでもやってみた。
比べてみるとわりとJavaも便利だよなー。
少なくともこの処理はJavaの方が簡単にできる。
…とか書く予定だったけどやっぱjsの方が楽だわ。
[ソース]
public class Nabeatsu {
public static void main(String[] args) {
for(int i = 1; i <= 40; i++) {
String aho = "";
if(i % 3 == 0) aho = "(アホ)";
int n = 1;
while(i / n >= 1) {
if(i % (n * 10) / n == 3) aho = "(アホ)";
n *= 10;
}
System.out.println(i + aho);
}
}
}
[実行結果(ブックマークレット)]
Nabeatsu
オマケです。
その場で実行できるのがjsの強みということで。
ただ40個alertが出てくるのでウザいです…。
ネタがないのでだいぶ前に気になって調べたことをメモ。
prototype.jsには、
Field.present(element1, [element2, ..., elementN])
という、渡したフォーム要素の中に空白のものが残っていないかをチェックできるメソッドがあります。
いや、正確にはありました。
このメソッド、現在は
Field.present(element)
という単一の要素をチェックするものになっているようです。
つまり、以前と同じように使っちゃうと先頭の要素しかチェックされないのです。
以下ソースコードで検証。
(こういうの一度やってみたかった!)
prototype.js 1.4.0のField.presentメソッド
present: function() {
for (var i = 0; i < arguments.length; i++)
if ($(arguments[i]).value == '') return false;
return true;
},
たしかに渡された要素全てについてチェックしています。
サンプル(by prototype.js ver 1.4.0 リファレンス)
prototype.js 1.5.0のField.presentメソッド
present: function(element) {
return $(element).value != '';
},
こちらは単一の要素しかチェックしてません。
ので、期待した挙動にはなりません(prototype.js ver 1.5.0 リファレンス)。
最新版の1.6.0.2も同じでした。
Fieldのメソッドだから、意味的には今の方が正しいっぽいですね。(便利さは別として)
どうやらJavaScriptistで読み込まれてる1.5.0 rc0ぐらいまでは前者の処理だったようです。
Fieldのメソッドで複数の要素を処理するのはおかしいってことで修正されたんですかねぇ。
と、ダラダラ書いてきましたが、実は公式のドキュメントにはきちんと正しい挙動が書かれています。(おそらくバージョンアップ時にアナウンスもあったことでしょう)
やっぱり公式のドキュメントも見ようぜってことですかね。(整備されたのは1.5以降ですが…)
この他にも、返す結果が以前と変わってるメソッドがあるかもしれませんし。
以上、おそらく周知の事実なんでしょうが、日本語のリファレンスは昔のままのところが多いので一応書いてみました。
このメソッド自体あまり使われないかもしれませんが…。誰かのお役に立てれば幸いです。
[参考(本文でリンクしたもの以外)]
- prototype.js ver 1.6.0 リファレンス
- prototype.js v1.5.0 の使い方
- Index of /dist
prototype.jsの古いバージョンはここにあります - Prototype JavaScript framework: Download Prototype
最新版はこちらから
[余談]
まぁjQueryばっかりでprototypeはめったに使わないですけどねぇ。
最近は、Developers Summit 2008 の資料を公開します。 - IT戦記で(意外にも?)オススメされてたExt.JSを一度ちゃんと使ってみなきゃなぁ、とか思ってます。








