JQuery AJAX сообщение блокировать форму отправить - PullRequest
0 голосов
/ 30 апреля 2009

Сценарий: в рамках события onblur элемента управления вводом html я отправляю асинхронную http-запись на ресурс, т.е. t.aspx.

Мне все равно, вернется ли он когда-либо, однако, если пользователи нажимают кнопку "Отправить", я хочу отправить форму.

Что я вижу при использовании наших симуляторов, так это то, что когда я замедляю t.aspx до 10 секунд (page_load Thread.Sleep (10000)), когда я нажимаю на кнопку отправить, он продолжает ждать оставшуюся часть 10 секунд, а затем представляет.

Мне нужна форма для отправки прямо сейчас. Ниже приведен фрагмент кода AJAX

var _requestData = "{" + "\" subject \ ": {" + "\" param1 \ ": \" "+ $ (" # param1 "). Val () +" \ "," + " \ "param2 \": \ "" + $ ("# param2"). val () + "\" "+"} "+"} ";

$. AjaxSetup ({ URL: "t.aspx", тип: "POST", processData: false, contentType: "application / json", dataType: "json", success: sucessfulCallback, ошибка: unsucessfulCallback });

$. Аякс ({ данные: _requestData });

Я также пробовал var myAjax = $ .ajax ..... и вызывал myAjax.abort () в форме отправки. Там тоже не повезло.

Любая помощь будет высоко ценится ...

С уважением David

Ответы [ 2 ]

0 голосов
/ 30 апреля 2009

На стороне сервера , вам нужно проверить, подключен ли пользователь к серверу или нет. Используя следующую команду.

if (!Response.IsClientConnected)
{
   // process user request
}
0 голосов
/ 30 апреля 2009

Вы не упоминаете, какую версию Jquery вы используете. В старых версиях была известная ошибка, точно такая, как вы описали: http://dev.jquery.com/ticket/2935.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...