Author: pyaschenko
Date: 2009-11-25 11:30:08 -0500 (Wed, 25 Nov 2009)
New Revision: 15998
Modified:
root/framework/trunk/impl/src/main/resources/META-INF/resources/richfaces-queue.js
Log:
ajax client library: queue: push model was added
Modified:
root/framework/trunk/impl/src/main/resources/META-INF/resources/richfaces-queue.js
===================================================================
---
root/framework/trunk/impl/src/main/resources/META-INF/resources/richfaces-queue.js 2009-11-25
16:01:59 UTC (rev 15997)
+++
root/framework/trunk/impl/src/main/resources/META-INF/resources/richfaces-queue.js 2009-11-25
16:30:08 UTC (rev 15998)
@@ -7,6 +7,10 @@
richfaces.queue.push(source, event, options);
};
+ var QUEUE_MODE_PULL = 'pull';
+ var QUEUE_MODE_PUSH = 'push';
+ var defaultQueueOptions = {mode: QUEUE_MODE_PULL, requestDelay:10000};
+
richfaces.queue = function(opts){
var queueEntry = function(query, event, options) {
@@ -45,7 +49,7 @@
},
startTimer: function() {
- var delay = this.options.requestDelay;
+ var delay = this.options.requestDelay || queueRequestDelay || 0;
log.debug("Queue will wait " + (delay || 0) + "ms before
submit");
@@ -98,6 +102,9 @@
var queueOptions = opts || {};
var last;
+ var queueMode = queueOptions.mode;
+ var queueRequestDelay = queueOptions.requestDelay;
+
var onError = function (data) {
log.debug("richfaces.queue: ajax submit error");
last = null;
@@ -116,7 +123,7 @@
jsf.ajax.addOnError(onError);
var submitFirst = function() {
- if (last) {
+ if (queueMode == QUEUE_MODE_PULL && last) {
log.debug("richfaces.queue: Waiting for previous submit results");
return;
}
@@ -124,14 +131,16 @@
log.debug("richfaces.queue: Nothing to submit");
return;
}
- last = items.shift();
- if (last.readyToSubmit) {
- log.debug("richfaces.queue: will submit request NOW");
- //last.query.appendParameter("AJAX:EVENTS_COUNT", last.eventsCount);
- var params = richfaces.processRequestParams(last.query, last.options);
- richfaces.ajax.request(last.query, last.event, params);
- if (last.options.queueonsubmit) {
- last.options.queueonsubmit.call(last);
+ if (items[0].readyToSubmit) {
+ last = items.shift();
+ if (last.readyToSubmit) {
+ log.debug("richfaces.queue: will submit request NOW");
+ //last.query.appendParameter("AJAX:EVENTS_COUNT", last.eventsCount);
+ var params = richfaces.processRequestParams(last.query, last.options);
+ richfaces.ajax.request(last.query, last.event, params);
+ if (last.options.queueonsubmit) {
+ last.options.queueonsubmit.call(last);
+ }
}
}
};
@@ -183,14 +192,14 @@
items.push(entry);
log.debug("New request added to queue. Queue similarityGroupingId changed to
" + similarityGroupingId);
+ submitFirst();
}
} else {
items.push(entry);
- log.debug("New request added to queue. Queue similarityGroupingId changed to
" + similarityGroupingId);
+ log.debug("New request added to queue.");
}
+ entry.startTimer();
- entry.startTimer();
- //submitFirst();
},
pop: function () {
@@ -199,5 +208,5 @@
clear: function () {
}
}
- }();
+ }(jQuery.extend({},defaultQueueOptions));
}(jQuery, RichFaces, jsf));
\ No newline at end of file
Show replies by date