Navigation Blocking
Navigointia estävä lisää yhden tai useamman kerroksen hallintaa koko taustalla olevalle reititin-API:lle. Jos estäviä käsittelijöitä on läsnä, navigointi estetään seuraavasti:
Jos navigointi laukaistaan jollakin reitittimen tasolla hallitulla toiminnolla, voit suorittaa minkä tahansa tehtävän tai näyttää käyttäjälle käyttöliittymäkehotteen toiminnon vahvistamiseksi. Jokainen komponentti, joka toteuttaa WillLeaveObserver
-sovelluksen reitinhierarkiassa, kutsutaan. Toteuttajan on kutsuttava accept
jatkaakseen navigointia tai reject
estääkseen sen. Jos useampi komponentti toteuttaa WillLeaveObserver
reitin puussa, estokäsittelijät suoritetaan peräkkäin käänteisessä järjestyksessä
Jos haluat nähdä, miten estäminen toimii käytännössä, tutustu Käyttöliittymän elinkaaren tarkastajien esimerkkeihin
Sivutapahtumille, joita ei voida hallita suoraan, reititin ei puutu tai pakota tiettyä käyttäytymistä. Kehittäjät voivat kuitenkin edelleen kuunnella beforeunload
-tapahtumaa tehdäksesi viimeisen yrityksen varoittaa käyttäjää tallentamattomasta datasta, jos se on tarpeen.
PageEventOptions options = new PageEventOptions();
options.setCode("""
event.preventDefault();
return true;
""");
Page.getCurrent().addEventListener("beforeunload", e -> {}, options);
Selaimen takapainike
Takapainike toimii web-sovellusten hallinnan ulkopuolella, mikä tekee sen toiminnan katkaisemisesta tai estämisestä vaikeaa kaikissa selaimissa johdonmukaisesti. Sen sijaan, että yrittäisit estää takapainiketta, on tehokkaampaa suunnitella käyttöliittymäsi/käyttökokemuksesi tavalla, joka vähentää vaikutusta. Mieti strategioita, kuten tallentaa tallentamaton data istuntotallennukseen, jotta käyttäjä, jos hän siirtyy pois ja palaa, voi palauttaa edistymisensä turvallisesti. Tämä lähestymistapa varmistaa tietosuojan luottamatta epäluotettavaan selaimen käyttäytymiseen.