Show
Ignore:
Timestamp:
12/06/07 17:18:28 (13 months ago)
Author:
cho45
Message:

lang/javascript/jsdeferred/trunk/test.html,
lang/javascript/jsdeferred/trunk/sample.html,
lang/javascript/jsdeferred/trunk/jsdeferred.js,
lang/javascript/jsdeferred/trunk/binding,
lang/javascript/jsdeferred/trunk/binding/jquery.js:

jQuery 部分を分離

Location:
lang/javascript/jsdeferred/trunk
Files:
2 added
3 modified

Legend:

Unmodified
Added
Removed
  • lang/javascript/jsdeferred/trunk/jsdeferred.js

    r2633 r2635  
    2323 * THE SOFTWARE. 
    2424 */ 
    25 (function ($) { 
    26 /* Usage:: 
     25/* Usage (with jQuery):: 
    2726 * 
    2827 *     $.deferred.define(); 
     
    5251 * 
    5352 * Sample: 
    54  *     var d = new $.deferred(); //=> new Deferred; 
     53 *     var d = new Deferred(); 
    5554 *     // or this is shothand of above. 
    56  *     var d = $.deferred(); 
     55 *     var d = Deferred(); 
    5756 */ 
    5857/* function Deferred.prototype.next   (fun) //=> Deferred 
     
    126125}; 
    127126 
    128 /* function Deferred.register (name, fun) //=> void 0 
    129  * 
    130  * Register `fun` to Deferred prototype for method chain. 
    131  * 
    132  * Sample:: 
    133  *     // Deferred.register("loop", loop); 
    134  * 
    135  *     // Global Deferred function 
    136  *     loop(10, function (n) { 
    137  *         print(n); 
    138  *     }). 
    139  *     // Registered Deferred.prototype.loop 
    140  *     loop(10, function (n) { 
    141  *         print(n); 
    142  *     }); 
    143  */ 
    144 Deferred.register = function (name, fun) { 
    145         this.prototype[name] = function () { 
    146                 return this.next(Deferred.wrap(fun).apply(null, arguments)); 
    147         }; 
    148 }; 
    149  
    150 /* function Deferred.wrap (dfun) //=> Function 
    151  * 
    152  * Create and return function which run `dfun` with arguments. 
    153  * 
    154  * Sample:: 
    155  *     var dloop = Deferred.wrap(loop); 
    156  * 
    157  *     next(dloop(10, function (n) { 
    158  *         print(n); 
    159  *     })); 
    160  */ 
    161 Deferred.wrap = function (dfun) { 
    162         return function () { 
    163                 var a = arguments; 
    164                 return function () { 
    165                         return dfun.apply(null, a); 
    166                 }; 
    167         }; 
    168 }; 
    169  
    170127/* function parallel (deferredlist) //=> Deferred 
    171128 * 
     
    192149 *     }); 
    193150 */ 
    194 function parallel (dl) { 
     151Deferred.parallel = function (dl) { 
    195152        var ret = new Deferred(), values = {}, num = 0; 
    196153        for (var i in dl) { 
     
    226183 *     }); 
    227184 */ 
    228 function wait (n) { 
     185Deferred.wait = function (n) { 
    229186        var d = new Deferred(), t = new Date(); 
    230187        var id = setTimeout(function () { 
     
    235192        return d; 
    236193} 
    237 Deferred.register("wait", wait); 
    238194 
    239195/* function next (fun) //=> Deferred 
     
    242198 * is called after current queue. 
    243199 */ 
    244 function next (fun) { 
     200Deferred.next = function (fun) { 
    245201        var d = new Deferred(); 
    246202        var id = setTimeout(function () { clearTimeout(id); d.call() }, 0); 
     
    271227 * 
    272228 */ 
    273 function call (f, args) { 
     229Deferred.call = function (f, args) { 
    274230        args = Array.prototype.slice.call(arguments); 
    275231        f    = args.shift(); 
     
    297253 *     }); 
    298254 */ 
    299 function loop (n, fun) { 
     255Deferred.loop = function (n, fun) { 
    300256        var o = { 
    301257                begin : n.begin || 0, 
     
    330286        }); 
    331287} 
    332 Deferred.register("loop", loop); 
    333  
    334 $.deferred          = Deferred; 
    335 $.deferred.parallel = parallel; 
    336 $.deferred.wait     = wait; 
    337 $.deferred.next     = next; 
    338 $.deferred.call     = call; 
    339 $.deferred.loop     = loop; 
    340 $.deferred.define   = function (obj, list) { 
     288 
     289/* function Deferred.register (name, fun) //=> void 0 
     290 * 
     291 * Register `fun` to Deferred prototype for method chain. 
     292 * 
     293 * Sample:: 
     294 *     // Deferred.register("loop", loop); 
     295 * 
     296 *     // Global Deferred function 
     297 *     loop(10, function (n) { 
     298 *         print(n); 
     299 *     }). 
     300 *     // Registered Deferred.prototype.loop 
     301 *     loop(10, function (n) { 
     302 *         print(n); 
     303 *     }); 
     304 */ 
     305Deferred.register = function (name, fun) { 
     306        this.prototype[name] = function () { 
     307                return this.next(Deferred.wrap(fun).apply(null, arguments)); 
     308        }; 
     309}; 
     310 
     311/* function Deferred.wrap (dfun) //=> Function 
     312 * 
     313 * Create and return function which run `dfun` with arguments. 
     314 * 
     315 * Sample:: 
     316 *     var dloop = Deferred.wrap(loop); 
     317 * 
     318 *     next(dloop(10, function (n) { 
     319 *         print(n); 
     320 *     })); 
     321 */ 
     322Deferred.wrap = function (dfun) { 
     323        return function () { 
     324                var a = arguments; 
     325                return function () { 
     326                        return dfun.apply(null, a); 
     327                }; 
     328        }; 
     329}; 
     330 
     331Deferred.register("loop", Deferred.loop); 
     332Deferred.register("wait", Deferred.wait); 
     333 
     334Deferred.define = function (obj, list) { 
    341335        if (!list) list = ["parallel", "wait", "next", "call", "loop"]; 
    342336        if (!obj)  obj  = (function () { return this })(); 
    343         $.each(list, function (n, i) { 
    344                 obj[i] = $.deferred[i]; 
    345         }); 
     337        for (var i = 0; i < list.length; i++) { 
     338                var n = list[i]; 
     339                obj[n] = Deferred[n]; 
     340        } 
    346341}; 
    347342 
    348 // override jQuery Ajax functions 
    349 $.each(["get", "getJSON", "post"], function (n, i) { 
    350         var orig = $[i]; 
    351         $[i] = function (url, data, callback) { 
    352                 if (typeof data == "function") { 
    353                         data = undefined; 
    354                         callback = data; 
    355                 } 
    356                 var d = $.deferred(); 
    357                 orig(url, data, function (data) { 
    358                         d.call(data); 
    359                 }); 
    360                 if (callback) d = d.next(callback); 
    361                 return d; 
    362         }; 
    363 }); 
    364  
    365 // end 
    366 })(jQuery); 
  • lang/javascript/jsdeferred/trunk/sample.html

    r2633 r2635  
    22<html xmlns="http://www.w3.org/1999/xhtml"> 
    33        <head> 
    4                 <title>jQuery Deferred Sample</title> 
     4                <title>JSDeferred Sample</title> 
    55                 
    66                <script type="text/javascript" src="http://coderepos.org/share/htdocs/lib/jquery-1.2.1.min.js"></script> 
    77                <script type="text/javascript" src="jsdeferred.js"></script> 
     8                <script type="text/javascript" src="binding/jquery.js"></script> 
    89                <script type="text/javascript"> 
    910                        // <![CDATA[ 
    10                         $.deferred.define(); 
    11  
    1211 
    1312                        // ]]> 
     
    5756        <body> 
    5857                <div id="whole"> 
    59                         <h1 id="top">jQuery Deferred Sample</h1> 
     58                        <h1 id="top">JSDeferred Sample</h1> 
    6059                        <p>About Deferred: <a href="http://mochikit.com/doc/html/MochiKit/Async.html">MochiKit.Async</a></p> 
    6160                        <p>Deferred is able to write async code cleanly.</p> 
     
    7069                                        <pre> 
    7170// export functions to global; 
    72 $.deferred.define(); 
     71Deferred.define(); 
    7372 
    7473// export to aObj 
    75 // $.deferred.define(aObj); 
     74// Deferred.define(aObj); 
    7675 
    7776// export specic functions 
    7877// var global = (function () { return this })(); 
    79 // $.deferred.define(global, ["next"]); 
     78// Deferred.define(global, ["next"]); 
    8079 
    8180// full name 
    82 $.deferred.next(fun); 
     81Deferred.next(fun); 
    8382</pre> 
    8483                                </div> 
  • lang/javascript/jsdeferred/trunk/test.html

    r2633 r2635  
    22<html xmlns="http://www.w3.org/1999/xhtml"> 
    33        <head> 
    4                 <title>jQuery Deferred Test</title> 
     4                <title>JSDeferred Test</title> 
    55                 
    66                <script type="text/javascript" src="http://coderepos.org/share/htdocs/lib/jquery-1.2.1.min.js"></script> 
    77                <script type="text/javascript" src="jsdeferred.js"></script> 
     8                <script type="text/javascript" src="binding/jquery.js"></script> 
    89                <script type="text/javascript" src="test-jsdeferred.js"></script> 
    910                <style type="text/css"> 
     
    9091        <body> 
    9192                <div id="whole"> 
    92                         <h1 id="top">jQuery Deferred Test <span id="nums">0/0</span></h1> 
     93                        <h1 id="top">JSDeferred Test <span id="nums">0/0</span></h1> 
    9394 
    9495                        <div id="content">