jQuery Scheduler Plugin

by salitrapraveen

JavaScript

(function($) {
    var tasks = [],
        settings = {
            sleep: undefined
        },
        methods = {
            schedule: function(task) {
                if ($.isFunction(task)) {
                    tasks.push(task);
                }
                else {
                    $.error('Parameter is not a function');
                }
            },
            schedulerSetup: function(options) {
                $.extend(settings, settings, options);
            },
            schedulerNext: function() {
                var nextTask;
                if (tasks.length > 0) {
                    nextTask = tasks.shift();
                    (settings.sleep) ? setTimeout(function() {
                        nextTask($.schedulerNext);
                    }, settings.sleep) : nextTask($.schedulerNext);
                }
            }
        };

    $.schedule = methods.schedule;
    $.schedulerSetup = methods.schedulerSetup;
    $.schedulerNext = methods.schedulerNext;
})(jQuery);

$(function(){
    var i = 0, j;
    for (j = 0; j < 5; j++) {
        var k = j+5;
        $.schedule(
            (function(index1,index2){
                return function(cb){
                    $.get('/echo/json', function(){
                        document.write('<p>' + (index1) + ',#'+(index2)+</p>');
                        cb();
                    });
                }
            })(j,k));
        
        

    }
    //$.schedulerSetup({sleep: 2000});
    $.schedulerNext();
});