Interval
Luokka Interval edustaa ajastinta, joka laukaisee tapahtuman kiinteällä aikaviiveellä jokaisen laukaisun välillä.
Voit aloittaa, pysäyttää ja käynnistää uudelleen Interval:in tarpeen mukaan ja lisätä useita kuuntelijoita kuluneelle tapahtumalle.
webforJ:ssä Interval tarjoaa paremman suorituskyvyn verrattuna tavalliseen Java-ajastimeen tai Swing-ajastimeen.
Käytännöt
Interval-luokka laukaisee tapahtumia kiinteällä aikaviiveellä. Käyttämällä Intervaleja luovasti voit luoda dynaamisia ja mielenkiintoisia kokemuksia sovelluksessasi:
-
Inaktiivisuuden tarkistaminen: Näytä
Dialog-komponentti, jos lomakkeella ei ole ollut vuorovaikutusta tietyn ajan kuluessa. -
Esitelty sisältö: Vaihda esiteltyjen artikkeleiden, tuotteiden tai kampanjoiden välillä etusivullasi jokaisella Intervalilla. Tämä pitää sisällön dynaamisena ja kiinnostavana.
-
Reaaliaikaiset tiedot: Päivitä tietoja sovelluksessasi, kuten osakehintoja, uutisvirtoja tai sään päivityksiä, jokaisella Intervalilla, jotta tiedot pysyvät ajantasaisina.
Interval-tilojen hallinta: käynnistäminen, pysäyttäminen ja uudelleenkäynnistäminen
Interval tarvitsee manuaalista aktivointia; käytä start()-metodia käynnistääksesi sen. Pysäyttääksesi Intervalin, käytä stop()-metodia. restart()-metodia voidaan käyttää Intervalin uudelleenkäynnistämiseen.
Interval-viiveen säätäminen
Muokataksesi Intervalin viivettä, käytä setDelay(float delay)-metodia. Uusi viivearvo otetaan käyttöön sen jälkeen, kun Interval on joko pysäytetty tai käynnistetty uudelleen.
//Viiveen muuttaminen
Interval.setDelay(2f);
Interval.restart();
Viive voi olla desimaalisekunteja millisekunnin tarkkuudella, mutta erittäin pieni aikaraja voi aiheuttaa tapahtumien tulvan, joka on nopeampi kuin ohjelma voi niihin reagoida.
Kuuntelijoiden lisääminen
Voit liittää lisäkuuntelijoita Intervaliin käyttämällä addElapsedListener(EventListener\<Interval.ElapsedEvent\> listener)-metodia. Kun kuuntelija on lisätty, se laukaisee automaattisesti seuraavalla intervalilla, jos Interval on jo käynnissä.
// Kuuntelijoiden lisääminen
float delay = 2f;
EventListener<Interval.ElapsedEvent> firstListener = (e -> {
// Suoritettava koodi
});
Interval interval = new Interval(delay, firstListener);
EventListener<Interval.ElapsedEvent> secondListener = (e -> {
// Suoritettava koodi
});
interval.addElapsedListener(secondListener);
Suorituskyky
Interval-luokka on erityisesti suunniteltu tarjoamaan parempaa suorituskykyä ja luotettavuutta suurille kuormille, joita verkkosovellukset kohtaavat.
Java Swingissä sama käyttäytyminen voidaan riittävästi hallita Timer-luokalla tai uudella säikeellä, mutta tämä lähestymistapa ei skaalaudu hyvin verkkosovelluksille.
Verkkosovelluksilla on todennäköisesti monia samanaikaisia käyttäjiä, ja jos jokainen käyttäjä luo uuden Timerin tai säikeen, järjestelmä voi nopeasti hajota, kun säikeet loppuvat.
On useita käyttökelpoisia vaihtoehtoja, jotka toimivat tässä mittakaavassa: virtuaaliset säikeet, Spring TaskExecutor ja TaskScheduler, ja Interval.
Sovelluksestasi ja käyttötapauksestasi riippuen jokin näistä voi olla paras vaihtoehto sinulle.
Oletusarvoisesti Interval on luotettava valinta, joka on erityisesti suunniteltu toimimaan webforJ:n kanssa, eikä se vaadi lisäasetuksia.