Mam poniżej inne proste rozwiązanie, które doskonale mi się sprawdziło.
Przede wszystkim utwórz CSS o nazwie Lockon class, która jest przezroczystą nakładką wraz z ładowaniem GIF-a, jak pokazano poniżej
.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;
}
Teraz musimy utworzyć nasz element div z tą klasą, który zakrywa całą stronę jako nakładkę za każdym razem, gdy strona jest ładowana
<div id="coverScreen" class="LockOn">
</div>
Teraz musimy ukryć ten ekran tytułowy za każdym razem, gdy strona jest gotowa, i abyśmy mogli ograniczyć użytkownikowi możliwość klikania / uruchamiania dowolnego zdarzenia, dopóki strona nie będzie gotowa
$(window).on('load', function () {
$("#coverScreen").hide();
});
Powyższe rozwiązanie będzie w porządku podczas ładowania strony.
Teraz pytanie brzmi po załadowaniu strony, za każdym razem, gdy klikniemy przycisk lub zdarzenie, które zajmie dużo czasu, musimy to pokazać w zdarzeniu kliknięcia klienta, jak pokazano poniżej
$("#ucNoteGrid_grdViewNotes_ctl01_btnPrint").click(function () {
$("#coverScreen").show();
});
Oznacza to, że po kliknięciu tego przycisku drukowania (co zajmie dużo czasu, aby wygenerować raport), pokaże się nasz ekran tytułowy z GIF, który daje wynik, a gdy strona jest gotowa, powyżej okna funkcji ładowania uruchomią się i ukryją ekran okładki po pełnym załadowaniu ekranu.