Changeset 15859 for lang/javascript/jsdeferred
- Timestamp:
- 07/15/08 23:07:10 (6 months ago)
- Location:
- lang/javascript/jsdeferred/trunk
- Files:
-
- 10 modified
-
binding/jquery.js (modified) (1 diff)
-
jsdeferred.jquery.js (modified) (2 diffs)
-
jsdeferred.js (modified) (1 diff)
-
jsdeferred.mini.js (modified) (1 diff)
-
jsdeferred.nodoc.js (modified) (1 diff)
-
jsdeferred.userscript.js (modified) (1 diff)
-
sample.html (modified) (1 diff)
-
test-jsdeferred.js (modified) (8 diffs)
-
test-rhino.js (modified) (4 diffs)
-
test.html (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
lang/javascript/jsdeferred/trunk/binding/jquery.js
r8469 r15859 1 1 (function ($) { 2 2 $.deferred = Deferred; 3 // override jQuery Ajax functions 4 $.each(["get", "post"], function (n, i) { 5 var orig = $[i]; 6 $[i] = function (url, data, callback, type) { 7 if (typeof data == "function") { 8 data = undefined; 9 callback = data; 10 } 11 var d = $.deferred(); 12 orig(url, data, function (data) { 13 d.call(data); 14 }, type); 15 if (callback) d = d.next(callback); 16 return d; 3 4 // override jQuery Ajax function for returning Deferred. 5 var orig_ajax = $.ajax; $.ajax = function (opts) { 6 var d = $.deferred(), orig = {}; 7 $.extend(orig, opts); 8 9 opts.success = function () { 10 if (orig.success) orig.success.apply(this, arguments); 11 d.call.apply(d, arguments); 17 12 }; 18 }); 13 14 opts.error = function () { 15 if (orig.error) orig.error.apply(this, arguments); 16 d.fail.apply(d, arguments); 17 }; 18 19 orig_ajax(opts); 20 21 return d; 22 }; 19 23 })(jQuery); 20 24 -
lang/javascript/jsdeferred/trunk/jsdeferred.jquery.js
r14855 r15859 61 61 return ret;} 62 62 } 63 return Deferred.call(_loop,o.begin);});};Deferred.register=function(name,fun){63 if(o.begin<o.end)return Deferred.call(_loop,o.begin);});};Deferred.register=function(name,fun){ 64 64 this.prototype[name]=function(){ 65 65 return this.next(Deferred.wrap(fun).apply(null,arguments));};};Deferred.wrap=function(dfun){ … … 70 70 var n=list[i];obj[n]=Deferred[n];} 71 71 return Deferred;};(function($){ 72 $.deferred=Deferred;$.each(["get","post"],function(n,i){ 73 var orig=$[i];$[i]=function(url,data,callback,type){ 74 if(typeof data=="function"){ 75 data=undefined;callback=data;} 76 var d=$.deferred();orig(url,data,function(data){ 77 d.call(data);},type);if(callback)d=d.next(callback);return d;};});})(jQuery); 72 $.deferred=Deferred;var orig_ajax=$.ajax;$.ajax=function(opts){ 73 var d=$.deferred(),orig={};$.extend(orig,opts);opts.success=function(){ 74 if(orig.success)orig.success.apply(this,arguments);d.call.apply(d,arguments);};opts.error=function(){ 75 if(orig.error)orig.error.apply(this,arguments);d.fail.apply(d,arguments);};orig_ajax(opts);return d;};})(jQuery); -
lang/javascript/jsdeferred/trunk/jsdeferred.js
r8480 r15859 287 287 } 288 288 } 289 return Deferred.call(_loop, o.begin);289 if (o.begin < o.end) return Deferred.call(_loop, o.begin); 290 290 }); 291 291 }; -
lang/javascript/jsdeferred/trunk/jsdeferred.mini.js
r14855 r15859 61 61 return ret;} 62 62 } 63 return Deferred.call(_loop,o.begin);});};Deferred.register=function(name,fun){63 if(o.begin<o.end)return Deferred.call(_loop,o.begin);});};Deferred.register=function(name,fun){ 64 64 this.prototype[name]=function(){ 65 65 return this.next(Deferred.wrap(fun).apply(null,arguments));};};Deferred.wrap=function(dfun){ -
lang/javascript/jsdeferred/trunk/jsdeferred.nodoc.js
r14855 r15859 129 129 } 130 130 } 131 return Deferred.call(_loop, o.begin);131 if (o.begin < o.end) return Deferred.call(_loop, o.begin); 132 132 }); 133 133 }; -
lang/javascript/jsdeferred/trunk/jsdeferred.userscript.js
r14856 r15859 133 133 } 134 134 } 135 return Deferred.call(_loop, o.begin);135 if (o.begin < o.end) return Deferred.call(_loop, o.begin); 136 136 }); 137 137 }; -
lang/javascript/jsdeferred/trunk/sample.html
r4770 r15859 209 209 210 210 function print (m) { $("#loop-code1").append("\n// "+m) } 211 </pre> 212 </div> 213 <div clsss="section"> 214 <h2>Auto Divided Loop</h2> 215 <pre id="aloop-code" onclick="eval($(this).text());"> 216 function aloop (n, f) { 217 var i = 0; 218 var end = new Object; 219 var ret = null; 220 return Deferred.next(function () { 221 var t = (new Date()).getTime(); 222 try { 223 do { 224 ret = f(i) 225 i++; 226 if (i > n) throw end; 227 } while ((new Date()).getTime() - t < 50); 228 print("Devided: " + ((new Date()).getTime() - t) + "msec."); 229 return Deferred.call(arguments.callee); 230 } catch (e) { 231 if (e == end) { 232 print("End"); 233 return ret; 234 } else { 235 throw e; 236 } 237 } 238 }); 239 } 240 241 aloop(100, function (n, o) { 242 print(n); 243 for (var i = 0; i < Math.pow(n, 2); i++) { 244 for (var j = n; j; j--); 245 } 246 }); 247 248 249 function print (m) { $("#aloop-code").append("\n// "+m) } 211 250 </pre> 212 251 </div> -
lang/javascript/jsdeferred/trunk/test-jsdeferred.js
r8480 r15859 1 1 $(function () { $.get("test-jsdeferred.js", {}, function (data) { 2 Global = (function () { return this })(); 2 3 3 4 // get tests number. … … 14 15 function show (msg, expect, result) { 15 16 var okng = this; 16 testfuns.pop(); 17 if (okng == "skip") { 18 result = "skipped " + expect + "tests:" + msg; 19 while (expect--) testfuns.pop(); 20 expect = "skipped"; 21 } else { 22 testfuns.pop(); 23 expect = (typeof expect == "function") ? uneval(expect).match(/[^{]+/)+"..." : uneval(expect); 24 result = (typeof result == "function") ? uneval(result).match(/[^{]+/)+"..." : uneval(result); 25 } 17 26 $("#nums").text([expects - testfuns.length, expects].join("/")); 18 expect = (typeof expect == "function") ? uneval(expect).match(/[^{]+/)+"..." : uneval(expect);19 result = (typeof result == "function") ? uneval(result).match(/[^{]+/)+"..." : uneval(result);20 27 $("<tr class='"+okng+"'><td>"+[msg, expect, result].join("</td><td>")+"</td></tr>").appendTo(results); 21 28 if (testfuns.length) { … … 46 53 function ok () { 47 54 show.apply("ok", arguments); 55 return true; 48 56 } 49 57 50 58 function ng () { 51 59 show.apply("ng", arguments); 60 return true; 61 } 62 63 function skip () { 64 show.apply("skip", arguments); 65 return true; 52 66 } 53 67 … … 58 72 show.apply("ng", arguments); 59 73 } 74 return true; 60 75 } 61 76 … … 93 108 d.call(); 94 109 95 // comment out for test on rhino96 // msg("jQuery binding test")97 // expect//("$.get deferred", true, $.get(".") instanceof $.deferred);98 // expect//("$.post deferred", true, $.post(".") instanceof $.deferred);99 // expect//("$.getJSON deferred", true, $.getJSON(".") instanceof $.deferred);100 110 101 111 // Start Main Test … … 354 364 next(function () { 355 365 msg("Stack over flow test: check not waste stack."); 366 if (skip("too heavy", 1)) return; 367 356 368 var num = 1000; 357 369 return loop(num, function (n) { … … 368 380 next(function () { 369 381 msg("Done Main."); 382 }). 383 next(function () { 384 msg("jQuery binding test") 385 if (Global.navigator) { 386 return next(function() { 387 expect("$.ajax should return deferred", true, $.ajax({ url: "." }) instanceof $.deferred); 388 expect("$.get should return deferred", true, $.get(".") instanceof $.deferred); 389 expect("$.post should return deferred", true, $.post(".") instanceof $.deferred); 390 expect("$.getJSON should return deferred", true, $.getJSON(".") instanceof $.deferred); 391 }). 392 next(function () { 393 return $.ajax({ 394 url : ".", 395 success : function () { 396 ok("$.ajax#success"); 397 }, 398 error : function () { 399 ng("$.ajax#success"); 400 } 401 }). 402 next(function () { 403 ok("$.ajax#success"); 404 }). 405 error(function (e) { 406 ng("$.ajax#success"); 407 }); 408 }). 409 next(function () { 410 return $.ajax({ 411 url : "error-404" + Math.random(), 412 success : function () { 413 ng("$.ajax#errro"); 414 }, 415 error : function () { 416 ok("$.ajax#error", "You may see error on console but it is correct."); 417 } 418 }). 419 next(function () { 420 ng("$.ajax#error"); 421 }). 422 error(function (e) { 423 ok("$.ajax#error"); 424 }); 425 }). 426 error(function (e) { 427 ng("Error on jQuery Test:", "", e); 428 }); 429 } else { 430 skip("Not in browser", 8); 431 } 432 }). 433 next(function () { 370 434 msg("Canceling Test:"); 371 435 return next(function () { … … 381 445 next(function () { 382 446 ng("Must not be called!! calceled"); 447 }). 448 error(function (e) { 449 ng(e); 383 450 }); 384 451 -
lang/javascript/jsdeferred/trunk/test-rhino.js
r8480 r15859 17 17 function show (msg, expect, result) { 18 18 var okng = this; 19 testfuns.pop();20 19 21 20 var out = []; 22 21 out.push(color(46, "[", [expects - testfuns.length, expects].join("/"), "]")); 22 if (okng == "skip") { 23 out.push(" ", color(33, "skipped " + expect + "tests: " + msg)); 24 print(out.join("")); 25 while (expect--) testfuns.pop(); 26 } else 23 27 if (okng == "ng") { 28 testfuns.pop(); 24 29 expect = (typeof expect == "function") ? uneval(expect).match(/[^{]+/)+"..." : uneval(expect); 25 30 result = (typeof result == "function") ? uneval(result).match(/[^{]+/)+"..." : uneval(result); … … 28 33 quit(); 29 34 } else { 35 testfuns.pop(); 30 36 out.push(" ", color(32, "ok")); 31 37 print(out.join("")); … … 39 45 function ok () { 40 46 show.apply("ok", arguments); 47 return true; 41 48 } 42 49 43 50 function ng () { 44 51 show.apply("ng", arguments); 52 return true; 53 } 54 55 function skip () { 56 show.apply("skip", arguments); 57 return true; 45 58 } 46 59 … … 51 64 show.apply("ng", arguments); 52 65 } 66 return true; 53 67 } 54 68 -
lang/javascript/jsdeferred/trunk/test.html
r4770 r15859 49 49 background: #900; 50 50 color: #fff; 51 font-weight: bold; 52 } 53 54 tr.skip { 55 color: #fff; 56 background: #d2b301; 51 57 font-weight: bold; 52 58 }
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)