Come faccio a ottenere i miei metodi jquery per chiamare il mio controller mvc e il mio controller mvc per fare 2 cose allo stesso tempo?chiamata jQuery asincrona al controller mvc asincrono
Il codice jquery va bene. Chiama solo i metodi e continua così come voglio.
$(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");
}
});
mio codice C# d'altra parte non sta facendo due cose alla volta:
[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);
}
La chiamata combinato dovrebbe prendere solo un po 'più di 10 secondi se è fatto correttamente, ma ora prende il doppio.
Devo creare un nuovo thread per le chiamate? O è fatto automaticamente dal pool di app?
EDIT:
Come si fa a verificare, quel lato server non sta facendo le cose in parallelo? L'intervallo tra l'avvio della prima chiamata a 'Hello1' e la fine di' Hello2' è maggiore di 20 secondi? Il framework MVC gestisce i thread automaticamente, ogni richiesta ha il suo thread. – drax
Non sono sicuro di capire cosa intendi. Posso vedere nella mia console i chrome che le chiamate per hello1 e hello2 vengono chiamate contemporaneamente. Ma posso anche vederlo differisce di 10 secondi dal loro ritorno. Puoi vedere questo nella mia immagine che ho aggiunto nella modifica. –
Sì, questo è esattamente quello che volevo sapere. L'impronta consueta in questo scenario è lo stato di sessione. Controlla questo articolo: http://www.stefanprodan.com/2012/02/parallel-processing-of-concurrent-ajax-requests-in-asp-net-mvc/ – drax