ASP.NET MVC, Ajax, demandes simultanées?
AJAX débutant ici!
Pour le moment, dans mon ASP.NET MVC web app mes requêtes AJAX, semblent s'groupées ou en file d'attente, je ne suis pas sûr.
Pas de demandes semblent être complété jusqu'à ce que la demande précédente a fini.
Comment puis-je obtenir les demandes de retour indépendamment?
Je n'ai pas forcément envie de quelqu'un pour me donner la réponse, mais peut-être que certains liens vers des tutoriaux ou des ressources qui pourraient les aider. Grâce
- Merci de poster le code de la requête AJAX et le Contrôleur de l'action que de la manipulation.
Vous devez vous connecter pour publier un commentaire.
Je suis en expansion sur Lachlan Roche réponse, ce qui est correct.
L'ASP.NET cadre "single-thread" les demandes qui traitent de la portée de Session (une ressource mondiale), afin de prévenir une demande d'interférer avec un autre. Dans WebForms je pense que vous pouvez utiliser la directive de Page pour spécifier que les différentes pages ne pas utiliser de Session et ne sont donc pas traités de façon synchrone comme ça.
Le problème est que dans ASP.NET MVC toutes les demandes Session d'utilisation, car il est utilisé pour mettre en œuvre TempData. Vous pouvez désactiver l'état de session entièrement, comme Lachlan Roche souligné, ou vous pouvez faire cela au cas par cas.
Une solution possible pourrait être de lancer votre propre threads d'arrière-plan de tout processus de longue durée d'exécution du code, de sorte que la demande initiale "complète" aussi rapidement que possible.
ASP.NET sera en série traiter les demandes sur une session par session, à moins que les sessions sont configurés comme handicapés ou en lecture seule dans le web.config via le enableSessionState attribut sur les pages de élément.
Que c'est une mise en page, cela n'affectera pas contrôleurs MVC et ils seront toujours soumises à la série de traitement de la demande.
Curieusement, même avec des séances désactivé ou réglé sur lecture seule, on peut encore lire et écrire des données de session. Il ne semble affecter que le verrouillage de session, qui provoque la série de traitement de la demande.
Pages peuvent également avoir une enableSessionState propriété, si ce n'est pas pertinente pour MVC vues.
Avec la sortie de l'ASP.MVC 3 vous pouvez maintenant ajouter un attribut à vos contrôleurs de marque de la Session en lecture seule, ce qui permet d'actions à être appelé en même temps à partir du même client.
- de cette DZone article.
En ajoutant
SessionState(SessionStateBehaviour.Disabled)
à votre contrôleur, le runtime vous permettra d'invoquer plusieurs actions simultanément à partir de la même session du navigateur.Malheureusement, je ne pense pas qu'il y est un moyen de marquer une action pour seulement désactiver la session lorsque cette action est appelée, donc si vous avez un contrôleur qui dispose de certaines actions qui nécessitent de la session, et d'autres qui ne le font pas, vous aurez besoin de déplacer ceux qui ne sont pas dans un contrôleur séparé.
Dans les versions ultérieures de l'ASP MVC, vous pouvez décorer individu classes de contrôleur avec le SessionStateAttribute
Depuis .NET Framework v3.0 publié, vous pouvez utiliser "SessionStateBehavior" enum avec SessionStateAttribute:
Bien Requête Simultanées sont plus sur navigateur dépendante aswell si vous le feu supposons que 10 en même temps que la demande d'une action à l'Aide d'AJax dans Mozilla et même l'utilisation d'IE 8, alors vous trouverez que Mozilla a du style à feu d'une demande d'attendre sa réponse et puis le feu de la deuxième et ainsi de suite... car c'est un par un, alors que dans IE * ce feu environ 6 simultanées demande à un temps de Serveur.
Afin de Requête Simultanées sont aussi fonction du type de navigateur.
Je suggère d'utiliser jQuery pour vos besoins avec ajax asp.net mvc, je l'ai utilisé exclusivement et il a été très facile.
Que pour les tutoriels, je regarde cela: http://docs.jquery.com/Ajax
Il y a des tonnes d'options pour jouer avec et je propose également de télécharger firebug de sorte que vous pouvez regarder des demandes de lancement à partir de votre page de façon asynchrone et de voir si elles incendie et de ce qu'ils retour etc.
Comme les autres gars à côté, les requêtes AJAX sont asynchrones et de ne pas avoir mis en file d'attente et qu'ils reviennent tous de façon indépendante quand ils ont fini, donc, si vous regardez dans firebug, il sera facile de voir ce qui se passe derrière les coulisses et avant que le débogueur est touché