2010-09-06 5 views
1

Как переносить данные через POST?

У меня есть вопрос.

На моем веб-сайте у меня есть форма, позволяющая пользователю отправлять данные через POST (ajax). Проблема заключается в том, когда пользователь отправляет поле, запрос запуска ajax ... если сервер бесплатный, или пользовательская сеть работает быстро, все работает очень плавно. Пользователь может отправлять сообщения очень быстро, и все работает.

Но если сервер перегружен или пользователь имеет медленное соединение, когда он нажимает кнопку отправки, ему приходится ждать, пока функция не завершит его работу.

Мне интересно, в JQuery можно создать какую-то чертову.

Например я получу

function send_message() 
{ 

//conditions 
if, not empty, les then xx words, etc 
//conditions 

//if conditions ok 
add_to_sedn_queque($somedata); 
//if conditions ok 

} 

И это должно быть выполнено немедленно.

add_to_sedn_queque() < - Я просто подделка, чтобы показать, что я хочу.

Чтобы эта функция работала с функцией отправки почты. В форме заказа Самые старые и новые запросы.

Я не прошу вас написать для меня отправку, у меня уже есть работа.

Как создать эту очередь, можно на простом примере.

С уважением

ответ

1

Я хотел бы использовать .queue() :) Как это:

function add_to_send_queque(data) { 
    $(document).queue('ajaxQueue', function(n) { 
     $.ajax({ 
     url: "something", 
     type: "POST", 
     data: data, 
     complete: n 
    }); 
} 

Что это делает совать звонки на настраиваемой очереди на document называется ajaxQueue. По мере завершения каждого запроса (добавьте метод success, если это необходимо, оно не повлияет на это), он вызывает следующий элемент в очереди или оставляет очередь открытой для следующей, которая будет выполнена немедленно (если тот, который только что был завершен, последний в очереди).

Обязательно используйте complete здесь и не success для вызова n, так что срабатывает независимо от того, если произошла ошибка ... в противном случае ваша очередь будет висеть в ожидании.

Или, если вам нужно/нужно больше опций/управления, есть плагины, которые делают это и немного больше, the ajaxManager plugin является одним из лучших вариантов здесь.

Смежные вопросы