jquery-rockqueue.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /**
  2. rockqueue 队列插件
  3. caratename:chenxihu
  4. caratetime:2104-04-06 21:40:00
  5. email:qqqq2900@126.com
  6. homepage:www.rockoa.com
  7. */
  8. (function ($) {
  9. function rockqueue(cans){
  10. var me = this;
  11. var defv = js.applyIf(cans,{
  12. rand:js.getrand(),
  13. successall:function(){},
  14. successone:function(){},
  15. tishi:'处理',
  16. waiting:function(){}
  17. });
  18. for(var i in defv)this[i] = defv[i];
  19. this.init = function(){
  20. this.cg = 0;
  21. this.sb = 0;
  22. this.len= this.data.length;
  23. this.startbool=true;
  24. this.msgstr = '';
  25. js.loading(''+this.tishi+'中('+this.len+'/<span id="queuecishu'+this.rand+'">1</span>)...');
  26. this.start(0);
  27. }
  28. this.wanchen = function(){
  29. setTimeout(function(){me.successall();},2000);
  30. var str = ''+this.tishi+'完成,总<b>'+this.len+'</b>条,成功'+this.cg+'次,失败'+this.sb+'次';
  31. if(this.msgstr)str+='<br>'+this.msgstr+'';
  32. js.msgok(str);
  33. }
  34. this.start = function(xu){
  35. if(xu >= this.len || !this.startbool){
  36. this.wanchen();
  37. return;
  38. }
  39. var d = this.data[xu];var type = d.type;if(!type)type='get';
  40. $('#queuecishu'+this.rand+'').html(''+(xu+1)+'');
  41. this.waiting(d);
  42. $.ajax({
  43. url:d.url,
  44. type:type,
  45. success:function(bstr){
  46. me.cg++;
  47. me.successone(d, bstr, true);
  48. me.start(xu+1);
  49. },
  50. error:function(e){
  51. me.sb++;
  52. me.successone(d, '出错:'+e.responseText+'', false);
  53. me.start(xu+1);
  54. }
  55. });
  56. }
  57. this.stop = function(str){
  58. this.startbool = false;
  59. if(str)this.setmsg(str);
  60. }
  61. this.setmsg = function(str){
  62. this.msgstr = str;
  63. }
  64. }
  65. $.rockqueue = function(cans){
  66. var funcls = new rockqueue(cans);
  67. funcls.init();
  68. return funcls;
  69. };
  70. })(jQuery);
粤ICP备19079148号