Ho un'altra soluzione semplice per questo che ha funzionato perfettamente per me.
Prima di tutto, crea un CSS con il nome della classe Lockon che è sovrapposizione trasparente insieme al caricamento GIF come mostrato di seguito
.LockOn {
display: block;
visibility: visible;
position: absolute;
z-index: 999;
top: 0px;
left: 0px;
width: 105%;
height: 105%;
background-color:white;
vertical-align:bottom;
padding-top: 20%;
filter: alpha(opacity=75);
opacity: 0.75;
font-size:large;
color:blue;
font-style:italic;
font-weight:400;
background-image: url("../Common/loadingGIF.gif");
background-repeat: no-repeat;
background-attachment: fixed;
background-position: center;
}
Ora dobbiamo creare il nostro div con questa classe che copre l'intera pagina come overlay ogni volta che la pagina viene caricata
<div id="coverScreen" class="LockOn">
</div>
Ora dobbiamo nascondere questa schermata di copertina ogni volta che la pagina è pronta e in modo da poter limitare l'utente a fare clic / attivare qualsiasi evento fino a quando la pagina è pronta
$(window).on('load', function () {
$("#coverScreen").hide();
});
La soluzione sopra andrà bene ogni volta che la pagina viene caricata.
Ora la domanda è dopo che la pagina è stata caricata, ogni volta che facciamo clic su un pulsante o un evento che richiederà molto tempo, dobbiamo mostrarlo nell'evento clic del client come mostrato di seguito
$("#ucNoteGrid_grdViewNotes_ctl01_btnPrint").click(function () {
$("#coverScreen").show();
});
Ciò significa che quando si fa clic su questo pulsante di stampa (che impiegherà molto tempo a fornire il rapporto) mostrerà la nostra schermata di copertina con GIF che fornisce il risultato e una volta che la pagina è pronta sopra la finestra al caricamento, la funzione si attiva e che nasconde la schermata di copertina una volta che lo schermo è completamente caricato.