Не умирай в одиночестве !! Я думаю, что ваш класс / пространство имен может быть немного запутано, так как вы смешиваете: и = (вы не можете использовать = внутри пространства имен {} объекта)
AjaxQueue = {
outURL: '/ajax.html',
queue: [],
sending: false,
//Stick message on the queue array
send: function(message) {
this.queue.push(message);
this.iterate();
},
//If theres a message on the queue array send it, then recursively calls itself
iterate: function() {
message = this.queue.pop()
//this will be false and stop recursion when there are no more messages
if (message)
{
new Ajax.Request(this.outURL, {
//no need to use string appending or encodeURL, prototype does this for you
parameters: {message: message},
method: 'GET',
onSuccess: function() {
//recursion. We avoid this because it wont be in scope
AjaxQueue.iterate()
}
});
}
}
}
Код для проверки
AjaxQueue.send('First Message'); AjaxQueue.send('Second message'); AjaxQueue.send('Third Message')
Попробуйте это с очень большим файлом или медленным скриптом, и вы увидите, что функционирование очереди работает.