Siirry pääsisältöön

Interval

Avaa ChatGPT:ssä
24.02
Java API

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:

  1. Inaktiivisuuden tarkistaminen: Näytä Dialog -komponentti, jos lomakkeella ei ole ollut vuorovaikutusta tietyn ajan kuluessa.

  2. Esitelty sisältö: Vaihda esiteltyjen artikkeleiden, tuotteiden tai kampanjoiden välillä etusivullasi jokaisella Intervalilla. Tämä pitää sisällön dynaamisena ja kiinnostavana.

  3. 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();
vinkki

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.