Ich habe eine ASP.NET Web App. Ich stelle fest, dass während ein einfacher Ajax-Aufruf (siehe unten) in Bearbeitung ist, die Webanwendung auf keine Aktion reagiert, die ich in einem anderen Browser versuche.
%Vor%Das passiert, wenn ich zwei Firefox oder zwei IE öffne. Ich führe die Funktion, die den Ajax-Aufruf auf dem ersten Browser und bis die Antwort des Ajax zurückgegeben wird, kann ich nichts auf dem zweiten Browser auf der gleichen Website tun. Auf dem Server werden keine Breakpoints vom zweiten Browser aus getroffen, bis der erste Ajax abgeschlossen ist. Es hängt für jeden Klick etc ..
Der Hang auf dem zweiten Browser endet sofort, nachdem der Ajax-Aufruf auf dem ersten beendet wurde.
Dieses Verhalten wird nicht beobachtet, wenn ich das gleiche auf IE und Firefox Seite an Seite versuche. Nur passieren mit IE & amp; IE oder FF & amp; FF Seite an Seite
Schätzen Sie, wenn Sie mir helfen können zu sehen, was ich hier vermisse.
Es hört sich an, als ob Apache (oder welcher Webserver auch immer ausgeführt wird) nur eine Anfrage pro Client gleichzeitig verarbeitet. Bei der Verarbeitung Ihrer Ajax-Anfrage stellt Apache alle anderen Anfragen vom selben Client in die Warteschlange.
Wenn Sie zwei verschiedene Browser verwenden, sieht Ihr Server außerdem jeden Browser als einen anderen Client an, dh er verarbeitet eine Anfrage pro Browser. Ich weiß nicht genau, welche Informationen verwendet werden, um einen Client zu identifizieren (meine Vermutung wäre IP-Adresse + Browser-Version, aber ich könnte hier schrecklich falsch liegen)
Jemand anders könnte Ihnen sagen, wie Apache konfiguriert wird, um dieses Problem zu umgehen. leider weiß ich das selbst nicht. Das Problem liegt jedoch nicht bei Javascript / Ajax; Es ist eine Einschränkung, die vom Server auferlegt wird, nicht vom Client.
"someurl" blockiert auf dem Server, bis die erste Anforderung für eine bestimmte Sitzung abgeschlossen ist . Das Problem tritt nicht auf, wenn Sie völlig getrennte Browser haben, da in diesem Szenario zwei separate ASP.NET-Sitzungen vorhanden sind. Standardmäßig führt ASP.NET eine Anforderungswarteschlange aus, wenn derselbe Client mehrere Anforderungen für Ressourcen stellt, die für das Schreiben in die Sitzung konfiguriert sind (Standardeinstellung für Pages). Basierend auf Ihrer Beschreibung ist dies was vor sich geht.
Lösung:
EnableSessionState="false"
oder hinzufügen
EnableSessionState="ReadOnly"
für die @ Page
-Direktive. IRequiresSessionState
oder ersetzen Sie es durch IReadOnlySessionState
. Tags und Links asp.net-mvc javascript .net jquery