August 2009
9 posts
3 tags
処理した結果をプールするライブラリ「pool.js」を作りました
yoko’s pool-js at master - GitHub
JSを書いている時によくあるキャッシュ処理を楽にします。
一度目の結果をキャッシュして二度目以降はその値を返す
sync = function() {
var md5 = Pool('md5', function() {
return MD5('一度だけ実行');
});
alert(md5);
};
sync();
sync(); // キャッシュした値が返る
Ajaxの結果をキャッシュして二度目からはリクエストしない
async = function() {
Pool('req',
function(f) { $.get('./', f); },
function(data) {
...
2 tags
今日のIE
6です。
delete window.foo出来ない
このオブジェクトではサポートされていない操作です。とかなんとか。IE以外のブラウザでは通る。
window.foo = undefined;
で対処出来る。特に問題もないと思う。
関数リテラルに付けた名前 !== arguments.callee
具体的には
// 関数リテラルに名前を付けてarguments.calleeの代わりにする
// 速度が少し上がるみたい
equal = (function f() {
var callee = arguments.callee;
return function() {
// IEではfalse、それ以外のブラウザではtrue
console.log(f === callee);
...
2 tags
git-svnでブランチ管理
まず取ってくる。
% git svn clone -s http://example.com/svn
-sは--stdlayout。trunk、branches、tagsで分かれてるリポジトリに使う。ディレクトリ構成が違う場合は-T trunk -b branches -t tags。
% git branch -r
branch_foo
branch_bar
tags/tag_baz
trunk
でどう対応しているかが見れる。
% git checkout -b local_branch_foo branch_foo
でローカルにブランチを作成。自動的に作ったブランチに移動してる。
% git commit
ローカルブランチにコミット。
% git svn dcommit
branch_gooブランチにコミット。
...
1 tag
valueOfが役に立つ場面
滅多に使わないのでvalueOfをよく知らなかったー。
valueOfはそのオブジェクトをプリミティブな値に変換出来る場合は変換、出来ない場合はそのままオブジェクトを返してくれます。変換出来るのはNumber、String、Boolean辺り。
var num = 123;
alert(typeof num); // number
var num = new Number(123);
alert(typeof num); // object
alert(typeof num.valueOf()); // number
Stringの場合が便利で、String#valueOfはString#toStringと同じ働きをするのでそのまま変換が出来ます:)
var str = new String('hello!');
alert(typeof str); //...
1 tag
gitで空ディレクトリを追加する
.gitignoreを作ってaddするのが定石らしい。もー。
$ mkdir kana1
$ touch kana1/.gitignore
$ git add kana1
@basix、@kana1ありがとうー。
1 tag
配列を指定数ずつ分割した新しい配列にするメソッド
重い処理を分割する時に使おうと思って作りました。
[1,2,3,4,5].split(3); // [[1,2,3], [4,5]]
みたいな処理をします。いい名前が思い付かなかった・・。
http://gist.github.com/160491