Ajaxで今よみがえる(^^;;-->[クロスブラウザ技術 ]DHTMLサンプル集
古籏一浩さんとのはじめての共著 発売中-->『Ajax実践テクニック』 古籏一浩/高橋 登史朗 (著)秀和システム
配本予約開始-->『入門Ajax 増補改訂版 』 高橋 登史朗 (著)ソフトバンククリエイティブ ; ISBN: 4797336242
【カテゴリー】 ActionScript ( 4 ) AjaSQL ( 9 ) Ajax ( 546 ) Arax ( 1 ) canvas ( 10 ) CSS ( 8 ) DLNA ( 1 ) Dojo ( 16 ) DOM ( 44 ) ES4 ( 4 ) 反重力物質 ( 1 ) ffAdd-on ( 1 ) Flash ( 45 ) Flash Remoting ( 11 ) FTP ( 2 ) GAF ( 9 ) Google Maps ( 108 ) GPS ( 38 ) HTTPヘッダサンプル ( 9 ) IPv6 ( 1 ) 漫画 ( 1 ) Java ( 44 ) JavaScript ( 235 ) jKamo ( 8 ) jQchart ( 1 ) jQuery ( 81 ) jquery-ref ( 1 ) jsGadget ( 19 ) jslb_ ( 3 ) jslb_ajax ( 9 ) JSON ( 44 ) JSR223 ( 7 ) kjscmd ( 1 ) KNOPPIX ( 1 ) Linux ( 14 ) Mac ( 8 ) Memo ( 3 ) Microformats ( 2 ) Mini AJAX ( 2 ) MochiKit ( 2 ) mootools ( 2 ) Movable Type ( 57 ) MySQL ( 9 ) NewGameWeb ( 2 ) Nucleus ( 8 ) OpenAJAX ( 3 ) OpenDocument ( 1 ) OS ( 5 ) P2P ( 2 ) Perl ( 7 ) PHP ( 37 ) PostGIS ( 1 ) PostgreSQL ( 3 ) prototype.js ( 21 ) ROBOT ( 1 ) RSSリーダー ( 14 ) Ruby on Rails ( 7 ) Spry ( 6 ) SQLite ( 10 ) SQLiteWorker ( 2 ) ssh ( 1 ) SSI ( 2 ) SVG ( 15 ) TRON ( 1 ) Video ( 1 ) VML ( 1 ) Webサービス ( 90 ) widget ( 6 ) Wiki ( 1 ) Win ( 6 ) WSH ( 1 ) X01HT ( 29 ) XML ( 28 ) XOOPS ( 1 ) XQuery ( 2 ) XUL ( 4 ) Yahoo! UI ( 59 ) 日付入力用カレンダー ( 1 ) 『Ajax実践テクニック』 ( 1 ) 『入門 Ajax』 ( 42 ) WinTips ( 2 ) こりゃすごい ( 2 ) チューニング ( 20 ) ダイナミックロード関数 ( 7 ) リファレンス ( 13 ) ライブラリ ( 90 ) レーダー雨量表示 ( 1 ) ハード ( 15 ) ペンギン ( 2 ) ブラウザ ( 60 ) ブログでBBS ( 1 ) アクセスグラフ ( 3 ) カレンダーによる日付入力スクリプト ( 4 ) クロスブラウザ ( 10 ) クロスブラウザ関数 ( 7 ) スマートフォン ( 8 ) セキュリティ ( 89 ) ソフトイーサ ( 1 ) マッシュアップ ( 22 ) 暗号 ( 4 ) 映画 ( 41 ) 河川の水位グラフ ( 3 ) 回線 ( 2 ) 開発ツール ( 16 ) 牛久大仏 ( 8 ) 携帯 ( 112 ) 言語 ( 18 ) 故障 ( 2 ) 洪水警報システム ( 2 ) 今日のひと言 ( 2 ) 仕様 ( 45 ) 雑談 ( 203 ) 書籍 ( 17 ) 親子ウインドウ有無の確認関数 ( 3 ) 新海誠 ( 3 )

【info】有料サポート(ベータ)限定 承り中 /【JSサポート(仮称)】 

【費用】 とりあえず、言い値で承ります。ただし、できる範囲での限定受付です。込み具合等によりお受けできない場合がありますのであらかじめご了承ください。サポートにご納得いただけなければ料金は不要です。 逆に感動したら多くても構いません(^^;;;。

【できること】 たとえば、かも日記で無料配布されているコードのカスタマイズや、あるいは、JavaScript/Ajax全般+Webサーバーとの連携などのアドバイス&サンプル作成等 。A:jQchartなどでWeb用グラフ設置(エクセル→CSVやデータベースからWebグラフ生成)などのアドバイスやカスタマイズサンプル作成。B:ツリーメニューなどのカスタマイズサンプル。C:Google Mapsのカスタマイズ。etc...

【できないこと】 腕立て伏せ200回

【ライセンス】 私が今まで「かも日記」等で提供してきたコードの大半は、商用利用、改造、自由、連絡不要で、今後もそれらは変わりません。そして、この有料サポートによりカスタマイズコードなどが提供される場合でも、同様に、それらを商用利用しても改造しても自由です。ただし、制限のきついライブラリなどを使う場合は、各ライブラリのライセンスに準拠せざるを得ない場合があります。

【info】いつもいろいろなテストなどをページ内のあちこちでやっているので、重かったり、壊れていたりするf^^;ことも多いですが、何卒、ご了承ください ( _ _ b

【prototype.js このページ内へのリンク】
【prototype.js】 version—1.6.0.2
【ライブラリ】JavaScriptライブラリのパフォーマンス、最速はコレ
Allabout更新 他のコードとの衝突を避けるテクニック
【prototype.js】Prototype 1.6.0とscript.aculo.us 1.8.0正式版
【prototype.js】バグフィックスv1.5.1.1
【ライブラリ】美しきJavaScriptフレームワーク「Ext 1.0」
【prototype.js】prototype.jsのライセンスに関して
【ライブラリ】prototype.js 1.5.1_rc2
【prototype.js】prototypejs.orgが誕生
【prototype.js】古籏さんによるリファレンスver 1.4.0
【jslb_】ライブラリ互換処理
【Ajax】そのサービスはAjaxフレームワークで一変できるか?(ITmedia)
【Yahoo! UI】YUIのyahoo.jsのYAHOO.extend
【Ajax】prototype.jsのXMLHttpRequest
【Dojo,prototype.js】Dojoの$()ドル関数的メソッド
【Mini AJAX,prototype.js】$()ドル関数を比較する2
【Spry,prototype.js】$()ドル関数を比較する
【Ajax】script.aculo.usのEffect実行順序管理用のカスタマイズクラス
【Ajax】Zephyr 、Ajax-based MVC framework for PHP
【言語】まつもとゆきひろ氏のプログラミング言語論
【prototyoe.js】prototype.js+scriptaculous.jsのロード時間

[ prototype.js ]

2008年01月27日

【prototype.js】 version—1.6.0.2

prototype.js ブックマークに追加する ブックマーク-- Buzzurl  / Hatena  / Livedoor track feed


Download the latest stable version—1.6.0.2 (January 25, 2008)
http://prototypejs.org/download

Prototype 1.6.0.2: Bug fixes, performance improvements, and security
http://prototypejs.org/2008/1/25/prototype-1-6-0-2-bug-fixes-performance-improvements-and-security

投稿者 tato : 00:29

2008年01月18日

【ライブラリ】JavaScriptライブラリのパフォーマンス、最速はコレ

Ajax 】 , Dojo 】 , Yahoo! UI 】 , jQuery 】 , prototype.js 】 , チューニング 】 , ライブラリ ブックマークに追加する ブックマーク-- Buzzurl  / Hatena  / Livedoor track feed


JavaScriptライブラリのパフォーマンス、最速はコレだ!
http://journal.mycom.co.jp/news/2008/01/17/030/

Javascript Library Performance Test Roundup
http://jst.pbwiki.com/

まぁ、ライブラリの評価はそれぞれ特長が違いますから単純ではないのですが、ひとつの目安として役に立つと思います。

関連:【jQuery】圧縮ツールの再検証
http://jsgt.org/mt/archives/01/001876.html

投稿者 tato : 23:11

2007年11月25日

Allabout更新 他のコードとの衝突を避けるテクニック

Dojo 】 , MochiKit 】 , Yahoo! UI 】 , jQuery 】 , mootools 】 , prototype.js 】 , ライブラリ ブックマークに追加する ブックマーク-- Buzzurl  / Hatena  / Livedoor track feed




jQueryシリーズ続きます

Allabout >> プログラミング >> JavaScript

他のコードとの衝突を避けるテクニック

jQueryのプラグインの話を進める前に、prototype.jsやYahoo!UI(YUI)など他のコードを併用する場合の注意点と作法をみておきます。
  1. ライブラリと名前の衝突
  2. jQueryとprototype.jsのオブジェクト構成
    1. jQueryのオブジェクト構成
    2. prototype.jsのオブジェクト構成
  3. jQuery.noConflict()で衝突を回避する
    1. noConflictによる簡単な 衝突回避サンプル   
    2. noConflict()する前のオブジェクト構成   
    3. noConflict()した場合のオブジェクト構成
  4. ネームスペースを変えるテクニック
    1. jQueryのみを使う(jQuery用$を使わない)   
    2. jQueryと新しいショートカット作成($jや$hogeなど)   
    3. DOM構築待機関数を利用したローカル処理(jQueryと関数内で$)   
    4. Queryという名前自体を取り替える(hogeなど)   
    5. 他のライブラリ内へ組み込む


投稿者 tato : 06:00

2007年11月08日

【prototype.js】Prototype 1.6.0とscript.aculo.us 1.8.0正式版

Ajax 】 , prototype.js 】 , ライブラリ ブックマークに追加する ブックマーク-- Buzzurl  / Hatena  / Livedoor track feed


Prototype.js 1.6.0と script.aculo.us 1.8.0の正式版がリリース。
http://prototypejs.org/2007/11/7/prototype-1-6-0-script-aculo-us-1-8-0-and-the-bungee-book-now-available

CHANGELOG
http://dev.rubyonrails.org/browser/spinoffs/prototype/tags/rel_1-6-0/CHANGELOG

#例のハッシュの問題は書き直された模様?



    古籏一浩 ( 2007年11月08日 20:40 )

    script.aculo.us ver 1.8.0でエフェクトのサンプルが一部動かないものがあるんだけど、なんででしょうかねぇ。
    既存のeffect.js使ったライブラリでも差し替えると動かなかったりします。ver 1.5.1.1まではちゃんと動くのに〜

    http://www.openspc2.org/JavaScript/Ajax/ref/script.aculo.us/ver1.8.0/index.html

    コレ↓だとフェードするけど、フェードするのはなぜかボタン・・・。
    new Effect.Fade("box", { from:1.0, to:0.2});って書いてあるのに。謎。動くのもあるんですけどねぇ・・・

    http://www.openspc2.org/JavaScript/Ajax/ref/script.aculo.us/ver1.8.0/ref/Effect/Fade/sample/index.html

    高橋 ( 2007年11月08日 21:11 )

    Firefox2、Opera9、Safari3が駄目で、IE6は動作しますね。
    おそらくですが、関数名fade()が衝突しているのかなと思います。

    prototype.jsもscript.aculo.usもグローバルな名前がズラーっと生成されていますから、、、、。すべての名前に精通しないと使うのは難しい、というか危ない?かも。<でも、覚えてられないですよね(^^;;;楽するはずのライブラリなのに、、、ということが、今回もやはり繰り返されそうな、、、?

    この点、jQueryは良いですよ。jQueryオブジェクトとそのショートカットの$の2個しかありませんから。

    古籏一浩 ( 2007年11月08日 23:27 )

    script.aculo.usのeffect.jsだとfadeは

    Effect.Fade = function(element) {〜}

    ってなってるんですよね。確かにfade()をfadeX()にすると動くけど...
    prototype.jsはシェア多いけど、つきあうのがだんだんと面倒に(笑)
    prototype.jsとjQueryの中間くらいのMooToolsがいいのかもしれないなあ。
    Dojoは1.0になったので、これを使うという手もなきにしもあらずだけど...
    速度と機能の両立だとMooToolsあたりかなと思うんですけどね〜。
    必要な機能だけセレクトして構築できるのもグッドだし。

    高橋 ( 2007年11月08日 23:54 )

    ああ、mooToolsも良いですよね。サイトは一番きれいなんじゃないでしょうか?<コードとは関係ない^^?

    と、思って、今確認したら、mootoolsもかなりグローバル領域を汚してますね、、、。

    うーん、昔は全然気にならなかったんですが(笑)、最近のように、他人のライブラリを使う機会が増えると、グローバルな名前の衝突リスクは少し気になってきますね。

    ちなみにjQueryとYUIは謙虚ですけど、YUIは、せっかく作ったネームスペースがじゅげむじぃげむのように長くなって、グローバルな結局ショートカット作ってみたりしてますf^^;;;;ので、それが知らないうちにぶつかってしまう可能性はあります(^^;

    古籏一浩 ( 2007年11月09日 00:06 )

    namespaceは以前から予約語になっていたんだから、IE5とかNetscape 6の時に機能するようにしちゃえばよかったんですよね。
    YUIはCSS名とかもあまりに長いのと煩雑なので引き気味です・・・
    今の所、jQueryならつきあってもいいかなあ、といった具合です。
    あれも、これもとなるとDojoにしたら?ということになっちゃうし・・・
    今年はjQueryでやるしかないかなあ。
    jQueryのUIまわりがYUIくらいあればいいんだけど。


    高橋 ( 2007年11月09日 00:13 )

    必要なら作れば良いと思います(笑)。

    私も今作法?を体得すべく書き散らしていますが、Webでほぼ必須の「DOM扱い」の手軽さは優れていると思います。

    jQueryでなければ、たぶん腰を上げることにならなかったような処理も書いてみたりしてf^^;;

    古籏一浩 ( 2007年11月09日 00:23 )

    そうそう、なければ作ればいいんですよ。
    ただ、現状ではライブラリの機能や特長を全部把握しきれていないので勉強中といったところです。
    全く使ったことがないのはMooToolsだけなので、これはサンプルとか作ってどうにかしたいところです。
    Ajaxライブラリの中ではjQueryはコアとしてうまくいっているかと。とにかく回りのプラグインで高機能なものが出てくれないとYUI, Dojoの代替にはならないですね。


    【コメント】(←clickで入力欄open)
投稿者 tato : 20:05

2007年06月25日

【prototype.js】バグフィックスv1.5.1.1

Ajax 】 , prototype.js 】 , ライブラリ ブックマークに追加する ブックマーク-- Buzzurl  / Hatena  / Livedoor track feed


Prototype 1.5.1.1 bug fix release
http://prototypejs.org/2007/6/20/prototype-1-5-1-1-bugfix-release

投稿者 tato : 22:32

2007年04月21日

【ライブラリ】美しきJavaScriptフレームワーク「Ext 1.0」

Flash 】 , Yahoo! UI 】 , jQuery 】 , prototype.js 】 , ライブラリ ブックマークに追加する ブックマーク-- Buzzurl  / Hatena  / Livedoor track feed


Apolloのサンプルで使われた、美しきJavaScriptフレームワーク「Ext 1.0」
http://journal.mycom.co.jp/articles/2007/04/21/ext/

Ext JS library
http://extjs.com/

Apollo:Applications:Samples
http://labs.adobe.com/wiki/index.php/Apollo:Applications:Samples

#ちなみに、解凍すると、/source/adapterホルダに、jquery-bridge.js、yui-bridge.js、prototype-bridge.jsというファイルがあって、Ext.lib.Domなどの互換クラスを作成しています。その中で、下記を見たときに、やっぱりこの思いは世界中でシンクロしてたのかなぁ(笑)と思いました( これ )。

var E = YAHOO.util.Event;
var D = YAHOO.util.Dom;
var CN = YAHOO.util.Connect;
var ES = YAHOO.util.Easing;
var A = YAHOO.util.Anim;

と、同時に、スピードと継続ですよね。どんどん動いています。とはいえ、この種のアプローチは、私には提供側は無理ですね。しんど過ぎます(^^;。



    古籏一浩 ( 2007年04月21日 23:42 )

    27年近く前の8ビット機の時代と、未だにやっている事が同じってのも何ともですけどねf(^^;
    逆に言えば、人間考えること&行き着くところは、対して変わらないというかフォンノイマン型のコンピュータの場合には仕方ないのかも。

    高橋 ( 2007年04月22日 00:24 )

    あー、確かに、どこまで行ってもエンドレスなのかもしれないですね〜。

    そういえば、いろんな場面でそういうことは感じますね。

    エジプトかどこかの壁面に「いまどきの若いものは、、、」みたいな字が彫ってあったのと同じで、人間は千年でも3千年でも同じことを、何度でも形を変えて繰り返していくのかも(笑)。


    【コメント】(←clickで入力欄open)
投稿者 tato : 21:38

2007年04月15日

【prototype.js】prototype.jsのライセンスに関して

prototype.js ブックマークに追加する ブックマーク-- Buzzurl  / Hatena  / Livedoor track feed


昔の日記の一部に追記修正。ただ、ちょっと、いまのところ判断つきません。ライセンス文に書いてある通りかなとは思いますけど。どうなんでしょう?

【Spry,prototype.js】$()ドル関数を比較する
http://jsgt.org/mt/archives/01/001113.html
>追記2007.4.15 
>prototype.jsのライセンスは、MITスタイルで配布されていますが、MITの肝心な著作権表示に関する行を意図的に?削除しているようにみえます(Thanx confさん)。

>ただ、このMITとして重要な件についての説明がみあたらなかったので、どう判断すべきかちょっと逡巡しています。ちなみに、お仲間である? script.aculo.usの方は正式なMITになっており、著作権表示義務の行も表記された全文になっているようです。

#私は、めんどくさいので、最近は、自分のスクリプトは特別な事情の無いものは大半パブリックドメインと宣言することにしてます。<もちろん、日本ではそれでも、アレなんですけど、、、(^^;。

投稿者 tato : 06:34

2007年03月19日

【ライブラリ】prototype.js 1.5.1_rc2

Ajax 】 , JavaScript 】 , prototype.js 】 , ライブラリ ブックマークに追加する ブックマーク-- Buzzurl  / Hatena  / Livedoor track feed


prototype.js 1.5.1_rc2がリリースされています。
http://prototypejs.org/download

投稿者 tato : 06:00

2007年01月20日

【prototype.js】prototypejs.orgが誕生

prototype.js ブックマークに追加する ブックマーク-- Buzzurl  / Hatena  / Livedoor track feed


ようやくprototypejs.orgなサイトが立ち上がり、ドキュメントも用意されたようです。
http://prototypejs.org/

Prototype API Documentation
http://prototypejs.org/api
Prototype Tips and Tutorials
http://prototypejs.org/learn

投稿者 tato : 06:33

2006年10月19日

【prototype.js】古籏さんによるリファレンスver 1.4.0

Ajax 】 , prototype.js ブックマークに追加する ブックマーク-- Buzzurl  / Hatena  / Livedoor track feed


prototype.jsリファレンスver 1.4.0
http://www.openspc2.org/JavaScript/Ajax/ref/prototype.js/ver1.4/index.html

#サンプル付きなのでわかりやすい。

参考:
prototype.js
http://prototype.conio.net/
prototype.js の開発者向けメモ
http://www.imgsrc.co.jp/~kuriyama/prototype/prototype.js.html
『Ajax実践テクニック』 Yahoo UI! ,Dojo,prototype.js ,script.aculo.us ,Rico サンプル
http://jsgt.org/js/books/rc/sample/contents.htm

投稿者 tato : 10:32 | トラックバック (0)

2006年10月05日

【jslb_】ライブラリ互換処理

Ajax 】 , Dojo 】 , Yahoo! UI 】 , jKamo 】 , jslb_ 】 , prototype.js 】 , ライブラリ ブックマークに追加する ブックマーク-- Buzzurl  / Hatena  / Livedoor track feed


最近、jslbなどいじっていて、ひとつのAjaxライブラリでしか動かないのはつまらないし、いちいちライブラリ移植の手間をかけるのもめんどくさい、と感じることが増えてきたので、互換処理を試してみました。

でも、まともに書き始めると、それぞれのライブラリ毎に特徴もあって、それらをすべて互換できるようにしようとすると、それだけのことで結構大きなライブラリができてしまうこともわかりました(笑)。

で、それは、無駄というか、それをやる気は無いので、とりあえず、あるjsgt_ajaxを使った処理に限定して、いくつかのライブラリを互換させてみるというのを試しました。まぁ、普通に動きますが、並べて動作比較などしてみるといくつか新たな発見があったりして面白いです。

  //=====================================================================
  // ライブラリ互換処理
  // jslb_ajax.jsのsendRequest、prototype.jsのAjax.Request、
  // YUIのConnect.asyncRequest、Dojoのdojo.io.bindを互換させます。
  // 使わないライブラリは、実装現場で最後に
  // case 'ライブラリ名':から;break;までの該当するブロックを削除
  // することで、このソースの軽量化が可能です。
  //
  use : '',//使用するライブラリ名

  //使用するライブラリ名を指定します。
  setUse :function(libName){
    this.use=(libName=='auto')?this._autoUse():((libName)?libName:'');
  },

  //setUseの第一引数が'auto'時に、下記配列順に検査しライブラリを自動指定します。
  _autoUse :function(){
    var lib=['prototype.js','yahoo.js','dojo.js','jslb_ajax.js'];
    var liboj=[window.Prototype,window.YAHOO,window.dojo,window.sendRequest];
    for(var i=0;i<=liboj.length;i++){
      var t=typeof liboj[i];
      if(t=='object'||t=='function'){return this.use=lib[i];};
    };
  },

  //置き換え
  _sendRequest :function(callback,data,method,url,async,sload){
  
    function mkPrams(b){
      var p='';
      for(var i in b){
        p+='&'+encodeURIComponent(i)+'='+encodeURIComponent(b[i]);
      };
      return p
    };
    
    switch(this.use){
    
      case 'prototype.js':
        var op={
          method:method,
          parameters:mkPrams(data),
          onComplete:callback,
          asynchronous:async
        };
        url=(sload)?url+'?'+(new Date()):url;
        return new Ajax.Request(url,op);
        
        ;break;
      
      case 'dojo.js':
        dojo.require("dojo.io.*");
        var postContent=''
        url=(sload)?url+'?'+(new Date()):url;
        if(method.toLowerCase()=='get')url+mkPrams(data)
        else postContent=mkPrams(data);
        dojo.io.bind({
          method:method,
          url:url,
          load: function(type,data){
            callback({responseText:data})
          },
          sync:async,
          postContent:postContent
        });

        ;break;
        
      case 'yahoo.js':
        var postData='';
        url=(sload)?url+'?'+(new Date()):url;
        if(method.toLowerCase()=='get')url+mkPrams(data)
        else postData=mkPrams(data);
        YAHOO.util.Connect.asyncRequest(
          method,url,{success:this.onloaded},postData
        )

        ;break;
        
      case 'jslb_ajax.js':
        sendRequest(callback,data,method,url,async,sload);

        ;break;
        
    }
  }
投稿者 tato : 00:15 | トラックバック (0)

2006年08月29日

【Ajax】そのサービスはAjaxフレームワークで一変できるか?(ITmedia)

Ajax 】 , prototype.js ブックマークに追加する ブックマーク-- Buzzurl  / Hatena  / Livedoor track feed


Web 2.0で変わるWebプログラミングの常識:
そのサービスはAjaxフレームワークで一変できるか?
http://www.itmedia.co.jp/enterprise/articles/0608/28/news055.html
>「prototype.js」と呼ばれるJavaScriptフレームワーク。
>多くのAjaxを応用したサービスで使われている「Ajaxフレームワークのデファクト」だ。

#この連載には敬意を表する私ですが、デファクトとまでは言いにくいかも。。。というか、この記事でそういう地位を得ていく可能性はあるかも。でも、prototype.jsを使うと、JavaScript本来の機能に影響を与えてしまいますので、マッシュアップなどには向かないかも。でも、簡単なものや、Ruby on Railsなどの上では超便利かも。

#ちなみに、たとえば、javascript:for(i in [0])alert(i)の期待される普通の動作は、ページのアドレス欄に打ち込んでみるとわかりますが、iの値である0が1回表示されて終わりのはずです。でも、prptotype.jsの読み込まれたページ(たとえばこことか)で試すと、ずらずらと出てきます。iの値だけでなく、中身も取り出そうとして、javascript:a=[0];for(i in a)alert(a[i])とかやるともっと凄いことになります。prototype.jsでは、各ネイティブなオブジェクトへ追加された、こういう動作を知らずに、他のライブラリやWebサービスと組み合わせるのは難しいですし、あの数千行のコードを検査してから使うのも大変かなと。

投稿者 tato : 09:26 | トラックバック (0)

2006年08月03日

【Yahoo! UI】YUIのyahoo.jsのYAHOO.extend

JavaScript 】 , Yahoo! UI 】 , prototype.js ブックマークに追加する ブックマーク-- Buzzurl  / Hatena  / Livedoor track feed


YUIのv0.11.2を眺めていたら、yahoo.jsにYAHOO.extendが追加されていました。要するに継承の実装なわけですが、prototype.jsのextend のようなシンプルなコピーではなくて、コンストラクタとメソッドをチェーンでつなぐと。うーん、今、試す時間がない、けど、メモ。
/** * Utility to set up the prototype, constructor and superclass properties to * support an inheritance strategy that can chain constructors and methods. * * @param {Function} subclass the object to modify * @param {Function} superclass the object to inherit */ YAHOO.extend = function(subclass, superclass) { var f = function() {}; f.prototype = superclass.prototype; subclass.prototype = new f(); subclass.prototype.constructor = subclass; subclass.superclass = superclass.prototype; if (superclass.prototype.constructor == Object.prototype.constructor) { superclass.prototype.constructor = superclass; } };
と思ったら、READMEにちゃんと書いてありました。
0.11.0 * Added YAHOO.extend, which provides an easy way to assign the prototype, constructor, and superclass properties inheritance properties. It also prevents the constructor of the superclass from being exectuted twice.
ざっくり訳::0.11.0 * YAHOO.extendを加えました。(YAHOO.extendはプロパティの継承をプロトタイプ、コンストラクタ、およびスーパークラスに割り当てる簡単な方法を提供します)。 それによって、二度スーパークラスのコンストラクタがexectutedされることはありません。
別物ですが、一応、ちなみに、prototype.jsのObject.extend
Object.extend = function(destination, source) { for (var property in source) { destination[property] = source[property]; } return destination; }
ついでに、私が愛用しているコピー関数copyOj。prototype.jsのObject.extendと等価ですがObject汚染しないただの関数です。
function copyOj(oj,aoj) { for(var i in aoj){ oj[i]=aoj[i] };return oj; } //applyを使わないのはfor MacIE


ちなみに、JavaScriptでの継承つながりで、こういうのを作っている方もいます。 クラスパッケージ化ツール CPT
投稿者 tato : 21:29 | トラックバック (0)

2006年07月22日

【Ajax】prototype.jsのXMLHttpRequest

Ajax 】 , prototype.js ブックマークに追加する ブックマーク-- Buzzurl  / Hatena  / Livedoor track feed


ふと、scriptaculous-js-1.6.0内のprototype.js Version: '1.5.0_pre1',を見ていたら、下記のようになっていました。IE7でXMLHttpRequestがネイティブ対応に変るわけですから、次のバージョンではXMLHttpRequest()が一番前にくるかな?それとも、もしかして、もう変ったバージョンがでている?
var Ajax = { getTransport: function() { return Try.these( function() {return new ActiveXObject('Msxml2.XMLHTTP')}, function() {return new ActiveXObject('Microsoft.XMLHTTP')}, function() {return new XMLHttpRequest()} ) || false; }, activeRequestCount: 0 }
#ちなみに、jslb_ajax.jsは、jslb_ajax050.jsとjslb_ajax050_c.jsで対応済みです。


    古籏一浩 ( 2006年07月22日 15:11 )

    普通に(?)考えればIE7考慮でXMLHttpRequest()が先頭ですよね。

    高橋 ( 2006年07月22日 16:35 )

    実は、IE7のシェアが、ベータ版でありながら、すでにSafari2.0のシェアを追い抜いています。というか、倍以上(^^;
    http://www.w3counter.com/globalstats/

    W3Counter Global Web Stats July 21, 2006
    Web Browser %
    1 Internet Explorer 6.0 65%
    2 Firefox 1.5 22%
    3 Firefox 1.0 4%
    4 Internet Explorer 7.0 2%
    5 Safari 2.0 1%
    6 Opera 9.0 <1%
    7 Opera 8.5 <1%
    8 Mozilla 1.7 <1%
    9 Safari 1.3 <1%
    10 Internet Explorer 5.5 <1%

    #IEユーザー人口の3%は新しもの好き?

    古籏一浩 ( 2006年07月23日 00:33 )

    確かに倍ですね(笑)
    Adobe Spry見たら、XMLHttpReq優先で、後は新しいバージョンのActiveXという具合にしてますね。

    高橋 ( 2006年07月23日 01:26 )

    ActiveXObjectの件もありますし、今年以降は、XMLHttpRequestを最初に分岐するのがXHR作法になると思います。

    ( 2006年07月25日 15:23 )

    gggggggggg


    【コメント】(←clickで入力欄open)
投稿者 tato : 11:39 | トラックバック (0)

2006年06月17日

【Dojo,prototype.js】Dojoの$()ドル関数的メソッド

Dojo 】 , prototype.js ブックマークに追加する ブックマーク-- Buzzurl  / Hatena  / Livedoor track feed


【Spry,prototype.js】$()ドル関数を比較する【Mini AJAX,prototype.js】$()ドル関数を比較する2 、 【YUI,prototype.js】YUIの$()ドル関数的メソッドに引き続き、なりゆきということで(^^;Dojoもみてみます。

Yahoo!UIと同様に、Dojoにも$関数はありませんが、同様のメソッドがあります。dojo.byId(id, doc)です。そろそろ、飽きてきましたので(笑)詳しくはやりませんが、下記の通り、複数指定は不可です。
dojo.byId = function(id, doc){
	if(id && (typeof id == "string" || id instanceof String)){
		if(!doc){ doc = document; }
		return doc.getElementById(id);
	}
	return id; // assume it's a node
}
テストしてみます。→サンプル
#Dojoのライセンスは、 BSD License または A