2009-04-30 3 views
0

Сценарий: Внутри события onblur элемента управления html я отправляю сообщение async http на ресурс i.e. t.aspx.jquery ajax post blocking form submit

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

Что я вижу из-за использования наших симуляторов, так это то, что когда я замедляю 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: ложь, CONTENTTYPE: "применение/JSON", DATATYPE: "JSON", успех: sucessfulCallback , ошибка: unsucessfulCallback });

$ .ajax ({ данные: _requestData });

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

Любая помощь была бы оценена ...

С уважением David

ответ

0

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

+0

Использование jquery v1.3.2 – 2009-04-30 10:23:00

0

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

if (!Response.IsClientConnected) 
{ 
    // process user request 
}