Wie bekomme ich meine jquery Methoden, um meine MVC-Controller und mein MVC-Controller zu tun, um 2 Dinge gleichzeitig zu tun?async jquery Aufruf an async mvc Controller
Der jquery-Code ist nicht in Ordnung. Es ruft nur die Methoden an und geht so weiter, wie ich es möchte.
$(document).ready(function() {
console.log("1");
getADsad();
console.log("2");
lala();
console.log("3");
});
function getADsad() {
$.ajax({
url: '/Configurator/Configure/Hello1',
type: 'POST',
dataType: 'json',
success: function (data) {
console.log(data + "hello1");
}
});
}
function lala() {
$.ajax({
url: '/Configurator/Configure/Hello2',
type: 'POST',
dataType: 'json',
success: function (data) {
console.log(data + "hello2");
}
});
Mein C# -Code auf der anderen Seite wird zwei Dinge auf einmal nicht tun:
[HttpPost]
public async Task<LoginViewModel> Hello1()
{
var str = await GetSlowstring();
return str;
}
[HttpPost]
public async Task<LoginViewModel> Hello2()
{
var str = await GetSlowstring();
return str;
}
public async Task<LoginViewModel> GetSlowstring()
{
await Task.Delay(10000);
LoginViewModel login = new LoginViewModel();
login.UserName = "HejsN";
return await Task.FromResult(login);
}
Der kombinierte Anruf nur ein wenig mehr als 10 Sekunden in Anspruch nehmen soll, wenn es richtig gemacht wird, aber es jetzt nimmt das Doppelte.
Muss ich einen neuen Thread für die Anrufe erstellen? Oder wird das automatisch vom Apppool gemacht?
EDIT:
Wie überprüfen Sie, dass Server-Seite ist nicht Dinge parallel zu tun? Ist die Zeit zwischen dem ersten Aufruf von 'Hello1' und dem Ende von' Hello2' größer als 20 Sekunden? MVC Framework verwaltet Threads automatisch für Sie, jede Anfrage erhält einen eigenen Thread. – drax
Ich bin mir nicht sicher, ob ich verstehe, was Sie meinen. Ich kann in meiner Konsole sehen, dass die Anrufe für hallo1 und hallo2 gleichzeitig aufgerufen werden. Aber ich kann auch sehen, es unterscheidet sich 10 Sekunden von, wenn sie zurückkehren. Sie können dies in meinem Bild sehen, das ich in der Bearbeitung hinzugefügt habe. –
Ja, genau das wollte ich wissen. Üblicher Fehler in diesem Szenario ist Sitzungsstatus. Überprüfen Sie diesen Artikel: http://www.stefanprodan.com/2012/02/parallel-processing-of-concurrent-ajax-requests-in-asp-net-mvc/ – drax