2009-04-30 8 views
0

Scénario: Dans l'événement onblur d'un contrôle d'entrée html, j'envoie un post HTTP asynchrone à une ressource, c'est-à-dire t.aspx. Je ne m'inquiète pas si elle revient jamais, mais si les utilisateurs cliquent sur soumettre je veux que le formulaire à soumettre. Ce que je vois de l'utilisation de nos simulateurs est que quand je ralentis t.aspx pour prendre 10 secondes (page_load Thread.Sleep (10000)) quand je clique sur submit il continue à attendre le reste des 10 secondes et puis soumet.jquery ajax postblocage formulaire submit

J'ai besoin du formulaire pour le soumettre immédiatement. Ci-dessous un extrait du code ajax

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

$ .ajaxSetup ({ url: "t.aspx", type : "POST", processData: false, contentType: "application/json", dataType: "JSON", succès: sucessfulCallback , erreur: unsucessfulCallback });

$ .ajax ({ données: _requestData });

J'ai également essayé var myAjax = $ .ajax ..... et en appelant myAjax.abort() dans le formulaire soumettre. Pas de chance là non plus.

Toute aide serait appréciée ...

Cordialement David

Répondre

0

Vous ne mentionnez pas quelle version Jquery que vous utilisez. Les anciennes versions avaient un bug connu qui correspond exactement à ce que vous décrivez: http://dev.jquery.com/ticket/2935.

+0

Utilisation de jquery v1.3.2 –

0

Sur le côté serveur, vous devez vérifier que l'utilisateur se connecte toujours au serveur ou non. En utilisant la commande suivante.

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