2009-11-06 8 views
0

Nous avons un service Web simple ASP.Net WCF Ajax activé qui est appelé via le proxy JavaScript généré. Le service effectue un appel de procédure stockée dans la base de données pour renvoyer un nombre entier d'enregistrements. Lorsque l'appel est appelé depuis le client (IE8 sous Windows 7) et que l'appel de la base de données prend while, je ne peux pas appeler d'autres fonctions JavaScript. Par exemple, l'une des listes déroulantes comporte un événement onchange qui ne se déclenche qu'une fois l'appel de service Web terminéLes appels WCF Ajax bloquent-ils les appels?

Ai-je mal configuré mon service WCF et, par inadvertance, en ai-je fait un appel synchrone? ou est-ce que ma supposition que les appels de WCF Ajax sont incorrects ansync?

Exemple de code

var count = MyNameSpace.MyService.GetCount(param1, onComplete); 

function onComplete(result){ 
    $get('countLabel').text = result; 
} 

MyNameSpace.MyService is the automagically generated proxy 
+1

Comment faites-vous vos appels AJAX exactement? Exemples de code? – jrista

+0

MyNameSpace.MyService.GetCount (param1, onComplete); OnComplete est la fonction de rappel. MyNameSpace.MyService est le proxy généré automatiquement – rams

+0

@rams: s'il vous plaît ajouter vos exemples de code à la question d'origine et les mettre en forme de code - dans ce commentaire, ils sont inutilement difficiles à lire ..... –

Répondre

2

La réponse est non, ils ne sont pas. L'appel devrait sortir asynchrone et vous devriez recevoir une notification d'achèvement ou d'échec à travers les rappels. Donc, quelque chose semble sévèrement mal si vous rencontrez ce problème. La seule chose à noter est que les anciens navigateurs ont une limite de deux connexions lorsqu'ils communiquent avec un seul domaine, donc si vous effectuez plusieurs appels simultanés, les troisièmes appels + ne seront pas émis avant l'un des deux précédents. Ces connexions sont partagées avec d'autres ressources que le navigateur peut extraire, telles que des images et des feuilles de style. Dans IE8 +, Chrome et Mozilla, le nombre de connexions a été augmenté à huit je crois.

+0

Drew, merci de confirmer ma suspicions et expliquant le plausible. – rams