asp.net mvc 4-controller führen Sie mehrere ajax-calls parallel
Habe ich eine asp.net MVC 4-controller thats Methoden aufgerufen werden via ajax.
Das problem ist, dass die ajax-requests behandelt werden sequenziell durch den controller.
Dies führt zu Leistungsproblemen, als die Zeit zum laden der Seite ist die Summe aller ajax-requests und nicht die längste ajax-request.
Um dies zu demonstrieren, habe ich einen Haltepunkt in die erste ("ReadOverview8Week") - Methode.
Alle diese Methoden nehmen ~600ms ausführen Individualität.
http://i.stack.imgur.com/HhtEX.png
Wie kann ich die controller reagieren auf alle drei Anfragen parallel?
Ich bin mit iis 8.
Dies ist die ajax-Anfrage (von kendo ui dataSource)
.DataSource(dataSource => dataSource.Ajax()
.Read(read => read.Action("ReadAllSitesOverview", "AbuseCase").Type(HttpVerbs.Get))
Dank.
- Fügen Sie den code für Ihre ajax-Anfragen.
- Die ajax-Anfragen in diesem Beispiel wurden aus einem kendo-datasource.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das Problem, das Sie konfrontiert sind, ist die Art und Weise zurückzuführen ASP.NET Verwaltung-Sitzung. Hier ist der wichtigste Teil von ASP.NET Session State Übersicht (Gleichzeitige Requests und Session State Abschnitt):
Können Sie lösen Ihr Problem, wenn Sie Ihre Aktionen nicht verlangen, Zugriff auf session. Wenn das der Fall ist, können Sie schmücken den controller mit SessionStateAttribute Attribut:
Diese Weise wird der controller nicht warten, für die Sitzung.
Wenn Ihr Aktionen erfordern nur-lese-Zugriff auf session, können Sie versuchen, mit der
SessionStateBehavior.ReadOnly
Wert. Dies wird nicht dazu führen, in eine exklusive Sperre, aber der Antrag noch warten, bis eine Sperre, die von einer lese-Anfrage schreiben.SessionStateBehavior.ReadOnly
ist nicht eine perfekte Lösung. Es könnte helfen, muss aber nicht (wie es noch warten, bis alle write-locks werden freigegeben).