J'ai une autre solution simple ci-dessous pour cela qui a parfaitement fonctionné pour moi.
Tout d'abord, créez un CSS avec le nom de la classe Lockon qui est une superposition transparente avec le chargement de GIF comme indiqué ci-dessous
.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;
}
Maintenant, nous devons créer notre div avec cette classe qui couvre toute la page en superposition chaque fois que la page est chargée
<div id="coverScreen" class="LockOn">
</div>
Maintenant, nous devons masquer cet écran de couverture chaque fois que la page est prête et afin que nous puissions empêcher l'utilisateur de cliquer / déclencher un événement jusqu'à ce que la page soit prête
$(window).on('load', function () {
$("#coverScreen").hide();
});
La solution ci-dessus conviendra à chaque fois que la page se charge.
Maintenant, la question est après le chargement de la page, chaque fois que nous cliquons sur un bouton ou un événement qui prendra beaucoup de temps, nous devons le montrer dans l'événement de clic client comme indiqué ci-dessous
$("#ucNoteGrid_grdViewNotes_ctl01_btnPrint").click(function () {
$("#coverScreen").show();
});
Cela signifie que lorsque nous cliquons sur ce bouton d'impression (ce qui prendra beaucoup de temps pour donner le rapport), il affichera notre écran de couverture avec GIF qui donne le résultat et une fois que la page est prête au-dessus de la fonction de chargement des fenêtres se déclenche et qui cache l'écran de couverture une fois que l'écran est complètement chargé.