PageSourceSearch

https://www.scientology.de/theme/store/js/jquery.ajaxq.js?_=9d8f7badc

js scientology.de collected 2026-09-25 00:44:39 UTC 3,540 bytes, 149 lines download raw bytes

1
2
3
4
5
6(function($) {
7
8    var queues = {};
9    var activeReqs = {};
10
11    
12    
13    $.ajaxq = function(qname, opts) {
14
15        if (typeof opts === "undefined") {
16            throw ("AjaxQ: queue name is not provided");
17        }
18
19        
20        var deferred = $.Deferred(),
21            promise = deferred.promise();
22
23        promise.success = promise.done;
24        promise.error = promise.fail;
25        promise.complete = promise.always;
26
27        
28        var deferredOpts = typeof opts === 'function';
29        
30        var clonedOptions = !deferredOpts ? $.extend(true, {}, opts) : null;
31        enqueue(function() {
32            
33            var jqXHR = $.ajax.apply(window, [deferredOpts ? opts() : clonedOptions]);
34
35            
36            
37            jqXHR.done(function() {
38                deferred.resolve.apply(this, arguments);
39            });
40            jqXHR.fail(function() {
41                deferred.reject.apply(this, arguments);
42            });
43
44            jqXHR.always(dequeue); 
45            return jqXHR;
46        });
47
48        return promise;
49
50
51        
52        
53        function enqueue(cb) {
54            if (!queues[qname]) {
55                queues[qname] = [];
56                var xhr = cb();
57                activeReqs[qname] = xhr;
58            }
59            else {
60                queues[qname].push(cb);
61            }
62        }
63
64        
65        
66        function dequeue() {
67            if (!queues[qname]) {
68                return;
69            }
70            var nextCallback = queues[qname].shift();
71            if (nextCallback) {
72                var xhr = nextCallback();
73                activeReqs[qname] = xhr;
74            }
75            else {
76                delete queues[qname];
77                delete activeReqs[qname];
78            }
79        }
80    };
81
82    
83    
84    $.each( [ "getq", "postq" ], function( i, method ) {
85        $[ method ] = function( qname, url, data, callback, type ) {
86
87            if ( $.isFunction( data ) ) {
88                type = type || callback;
89                callback = data;
90                data = undefined;
91            }
92
93            return $.ajaxq(qname, {
94                type: method === "postq" ? "post" : "get",
95                url: url,
96                data: data,
97                success: callback,
98                dataType: type
99            });
100        };
101    });
102
103    var isQueueRunning = function(qname) {
104        return queues.hasOwnProperty(qname) && queues[qname].length > 0;
105    };
106
107    var isAnyQueueRunning = function() {
108        for (var i in queues) {
109            if (isQueueRunning(i)) return true;
110        }
111        return false;
112    };
113
114    $.ajaxq.isRunning = function(qname) {
115        if (qname) return isQueueRunning(qname);
116        else return isAnyQueueRunning();
117    };
118
119    $.ajaxq.getActiveRequest = function(qname) {
120        if (!qname) throw ("AjaxQ: queue name is required");
121
122        return activeReqs[qname];
123    };
124
125    $.ajaxq.abort = function(qname) {
126        if (!qname) throw ("AjaxQ: queue name is required");
127        
128        var current = $.ajaxq.getActiveRequest(qname);
129        delete queues[qname];
130        delete activeReqs[qname];
131        if (current) current.abort();
132    };
133
134    $.ajaxq.clear = function(qname) {
135        if (!qname) {
136            for (var i in queues) {
137                if (queues.hasOwnProperty(i)) {
138                    queues[i] = [];
139                }
140            }
141        }
142        else {
143            if (queues[qname]) {
144                queues[qname] = [];
145            }
146        }
147    };
148
149})(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.