La mia applicazione effettua diverse chiamate a un metodo Action (ASP .NET MVC) che restituisce un oggetto Json. Quando l'applicazione è in attesa che questo metodo restituisca i suoi dati, voglio visualizzare un'animazione di caricamento al centro della pagina. Come potrei realizzare questo? So che dovrei usare JQuery ma è tutto ciò che so.Visualizzazione dell'animazione di caricamento al centro della pagina mentre si effettua una chiamata al metodo Action in ASP .NET MVC
risposta
Ho definito due funzioni in Site.master:
<script type="text/javascript">
var spinnerVisible = false;
function showProgress() {
if (!spinnerVisible) {
$("div#spinner").fadeIn("fast");
spinnerVisible = true;
}
};
function hideProgress() {
if (spinnerVisible) {
var spinner = $("div#spinner");
spinner.stop();
spinner.fadeOut("fast");
spinnerVisible = false;
}
};
</script>
E sezione speciale:
<div id="spinner">
Loading...
</div>
stile visivo è definito nei CSS:
div#spinner
{
display: none;
width:100px;
height: 100px;
position: fixed;
top: 50%;
left: 50%;
background:url(spinner.gif) no-repeat center #fff;
text-align:center;
padding:10px;
font:normal 16px Tahoma, Geneva, sans-serif;
border:1px solid #666;
margin-left: -50px;
margin-top: -50px;
z-index:2;
overflow: auto;
}
Puoi farlo visualizzando un div (se vuoi farlo in modal potresti usare blockUI - o uno dei tanti altri plugin di dialogo modale là fuori) prima della richiesta, quindi aspetta solo la chiamata indietro riesce come un esempio veloce è possibile che si $ GetJSON come segue (si potrebbe desiderare di utilizzare .ajax se si desidera aggiungere una corretta gestione degli errori)
$("#ajaxLoader").show(); //Or whatever you want to do
$.getJSON("/AJson/Call/ThatTakes/Ages", function(result) {
//Process your response
$("#ajaxLoader").hide();
});
Se lo fai più volte nella vostra app e vogliono centralizzare il comportamento per tutte le chiamate ajax è possibile utilizzare gli eventi AJAX globali: -
$("#ajaxLoader").ajaxStart(function() { $(this).show(); })
.ajaxStop(function() { $(this).hide(); });
Utilizzando blockUI è simile, per esempio con il contrassegno in su come: -
<a href="/Path/ToYourJson/Action" id="jsonLink">Get JSON</a>
<div id="resultContainer" style="display:none">
And the answer is:-
<p id="result"></p>
</div>
<div id="ajaxLoader" style="display:none">
<h2>Please wait</h2>
<p>I'm getting my AJAX on!</p>
</div>
E utilizzando jQuery: -
$(function() {
$("#jsonLink").click(function(e) {
$.post(this.href, function(result) {
$("#resultContainer").fadeIn();
$("#result").text(result.Answer);
}, "json");
return false;
});
$("#ajaxLoader").ajaxStart(function() {
$.blockUI({ message: $("#ajaxLoader") });
})
.ajaxStop(function() {
$.unblockUI();
});
});
Votati questo uno in quanto è più completo e strutturalmente meglio. Bello! – Syed
- 1. * effettua una chiamata al costruttore?
- 2. Visualizza l'immagine al centro della pagina
- 3. Android - visualizzazione del testo al centro della barra di avanzamento
- 4. Allineare il paragrafo al centro della pagina
- 5. Allinea il tavolo al centro della pagina
- 6. Evitare espressioni mostrate al caricamento della pagina
- 7. Test di una chiamata al metodo asincrono
- 8. come allineare un'immagine al centro di una pagina in ionico
- 9. Attivare un pulsante al caricamento della pagina
- 10. iFrame non si carica al caricamento della pagina (jQuery Mobile)
- 11. Imposta aspettativa della chiamata al metodo mentre si chiama ancora l'implementazione originale
- 12. Mostra una barra di caricamento utilizzando jQuery mentre si effettua una richiesta AJAX
- 13. Finestra di dialogo JQuery momentaneamente visualizzata al caricamento della pagina
- 14. jQuery $ .get chiamata al metodo nel controller
- 15. Avvia l'animazione al caricamento della pagina, ferma sulla pagina caricata
- 16. Alternativa al metodo di caricamento in Swift
- 17. Modulo di invio automatico al caricamento della pagina
- 18. Come allineare il testo al centro in etichetta asp
- 19. Passare un DateTime al controllore tramite URL che causa l'errore in ASP .NET MVC 3 (cultura)
- 20. Centrare un grafico al centro di una pagina utilizzando Knitr
- 21. come mettere l'immagine al centro della pagina html?
- 22. Testing Rimuovere metodo senza una chiamata al metodo Add
- 23. Estensione Google Chrome - attesa fino al caricamento della pagina
- 24. Rails 4: Net :: ReadTimeout al momento della chiamata ActionMailer
- 25. come chiamare funzione javascript al caricamento della pagina in MVC3
- 26. Comportamento submitButton lucido al tempo di caricamento della pagina
- 27. Finestra di aggiornamento PHP? equivalente al caricamento della pagina F5?
- 28. Esiste comunque l'altezza di "autofit" dell'area di testo in base al contenuto al caricamento della pagina?
- 29. Come chiamare funzione javascript al caricamento della pagina in asp.net
- 30. Esegui JS al caricamento della pagina senza usare jQuery
Puoi spiegare dove vengono chiamate quelle funzioni javascript? –
Queste funzioni JavaScript potrebbero essere chiamate nelle chiamate Ajax. showProgress() potrebbe essere chiamato all'avvio di Ajaxcall e hideProgress() potrebbe essere chiamato in una funzione completa o di successo/errore di Ajaxcall. – MUlferts