prototype.jsで関数のスコープを任意のオブジェクトに委譲する Function.bindメソッドはイベントのコールバック関数なんかで使うのにすこぶる便利なんだけど jQueryには意外とそれっぽい機能がないように思う。 ので応急処置として以下のコードを書いておく。

jQuery.scope = function(target,func){ return function() { func.apply(target,arguments);}};

こう使います。

$.ajax({
  url:'hoge.xml',
  complete: $.scope(this,handleComplete)
});
function handleComplete(data,status){ ... }

スコープを渡さないで実行すると、コールバックのスコープはイベント自身なんだけど クラス内で$.ajaxを使いたい場合なんかは不都合ですんで。

時間があれば、さくっとプラグインにしておきたいけど プラグインにするほどのコード量じゃないし、 プラグインは別ファイル化するのが一般的だから、いちいち面倒くさいし。

ちなみに、これはActionScriptでいうところの mx.utils.Delegate.createと全く同じ機能ですね。

Posted in ajax, javascript, jquery at 2月 21st, 2008. 3 Comments.

また新しいJavaScriptフレームワークの登場らしい。

結構いいなぁと思うんだが、すでに選択が難しいよね。

http://docs.mootools.net/files/Core/Moo-js.html

Posted in ajax, javascript, programing at 1月 31st, 2007. No Comments.

AjaxでちょっとしたRSSリーダーでも作ろうと思って
手を動かしはじめたんだけど
あんまり多くのライブラリは使いたくないという理由でPrototype.jsにした。
で一番しょっぱなからつまづく

<br />new Ajax.Request('http://b.hatena.ne.jp/zackle/rss',options);<br />


で、ローカル上(←ここが重要だったらしい)のHTMLから動かしても
FireFoxでうんともすんともいわねぇ。
IEでは通る。

どうやらFireFoxはローカル以外のファイルにアクセスできないようになっているらしい。
それならばと、XMLをローカルに配置していざ!

<br /> new Ajax.Request('rss.xml',options);<br />



これだと、FireFoxでは動くものの
IEではNullっぽいものが返ってくる。

で、さんざん悩んだ結果、IEはローカルファイルにアクセスできないんだと。

え?Mozzilaはローカルファイルじゃないとアクセスできなくて
IEはローカルファイルにアクセスできない??
なにその相反した関係は・・・。

よくよく考えたら、サーバにあげればいいんじゃんという
ごく普通の事に気がついた。
当然動いた。

つまり別サーバにあるXMLを取得するには、サーバプログラムをかます必要があるってことだな。
それと開発にはサーバが必要だってことじゃんね。

僕のようなJavaScriptをよく知らない人間は、結構落ちる罠かなと。

Posted in ajax, javascript at 10月 26th, 2006. No Comments.

prototype.jsを読み始めた。 クロージャが沢山でてくる。

var Class = {
    create:function(){
        return function(){
            return this.initialize.apply(this,arguments)
        }
    }
}

JavaScriptはクロージャを使うことが多いらしいので きちんと把握せねばなぁ。

あとで読む http://ishikawa.arielworks.com/memo/2005/07/24/031449

つい最近匿名関数が

functioin(){}();

すぐ使えることを知った身としては、まだまだというか JavaScriptおもしろ。というか。 Flashだとあまりコアな部分は気にしてなかったからなぁ。

もうずっとだけど、ロリポップのサーバが頻繁に落ちる。 全然使えねえな。 レンサバ変えるか、家に鯖立てるか。

自宅鯖は却下だな。だってうちすぐ電気もネットも止まるもん。Mac miniとかで立てたいけども。

ヘテムルとかしか、あとしらね。FMSとか普通に考えていらねーよなぁ。RubyとPythonはあるにこしたことなさそう。

Posted in ajax, javascript at 10月 24th, 2006. No Comments.

http://www.hawk.34sp.com/stdpls/xml/xmlhttprequest.html

ここを見て、Ajaxの基本を学んだ。 実際書いて動かしてみたけど、全然難しいことはないね。ブラウザごとの挙動が気になるけれど…。最近のクラスブラウザ事情ってどうなってるんだろう?今だったらエージェントしらべて、State使って…みたいな感じかな?

var request = new XMLHttpRequest()
request.onreadystatechange = function(){}
request.open('GET',url,true)

いままでさんざんFlashでやってきたのと手法は一緒だから、問題はJavaScript+DOMの部分だよな。

Ajaxの仕事でも入ればなぁ…。

Posted in ajax, javascript, 日記 at 4月 6th, 2005. No Comments.