Interval
De Interval klasse vertegenwoordigt een timer die een evenement met een vaste tijdsvertraging tussen elke trigger activeert.
Je kunt een Interval naar behoefte starten, stoppen en herstarten en meerdere luisteraars voor het verstreken evenement toevoegen. In webforJ heeft een Interval betere prestaties in vergelijking met een standaard Java-timer of Swing-timer.
Usages
De Interval klasse triggert evenementen met een vaste tijdsvertraging. Door Intervals creatief te gebruiken, kun je dynamische en interessante ervaringen in je app creëren:
-
Controleer op Inactiviteit: Toon een
Dialogcomponent als er gedurende een bepaalde tijd geen interactie op een formulier is geweest. -
Uitgelichte Inhoud: Draai door uitgelichte artikelen, producten of promoties op je homepage bij elke Interval. Dit houdt de inhoud dynamisch en boeiend.
-
Live Gegevens: Vernieuw gegevens op je app, zoals aandelenprijzen, nieuwsfeeds of weersupdates, bij elke Interval om de gegevens actueel te houden.
Beheren van Interval statussen: starten, stoppen en herstarten
Een Interval vereist handmatige activatie; gebruik de start() methode om het te initiëren. Gebruik de stop() methode om een Interval te stoppen. De restart() methode kan worden gebruikt om het Interval opnieuw te starten.
De vertraging van het Interval aanpassen
Om de vertraging van een Interval te wijzigen, gebruik je de setDelay(float delay) methode. De nieuwe vertraging waarde wordt toegepast nadat het Interval is gestopt of opnieuw is gestart.
//Verander de Vertraging
Interval.setDelay(2f);
Interval.restart();
De vertraging kan fractionele seconden tot milliseconden zijn, maar een zeer kleine time-outwaarde veroorzaakt een overvloed aan evenementen sneller dan het programma erop kan reageren.
Luisteraars toevoegen
Je kunt extra luisteraars aan een Interval toevoegen met de addElapsedListener(EventListener\<Interval.ElapsedEvent\> listener) methode. Zodra een luisteraar is toegevoegd, wordt deze automatisch getriggerd bij de volgende interval als het Interval al actief is.
// Luisteraars toevoegen
float delay = 2f;
EventListener<Interval.ElapsedEvent> firstListener = (e -> {
// Uitvoerbare code
});
Interval interval = new Interval(delay, firstListener);
EventListener<Interval.ElapsedEvent> secondListener = (e -> {
// Uitvoerbare code
});
interval.addElapsedListener(secondListener);
Prestaties
De Interval klasse is speciaal ontworpen om betere prestaties en betrouwbaarheid te bieden voor de grote belasting die webapps tegenkomen. In Java Swing kan hetzelfde gedrag voldoende worden beheerd door een Timer of een nieuwe thread, maar die aanpak schaalt niet goed voor webapps. Webapps hebben waarschijnlijk veel gelijktijdige gebruikers, en als elke gebruiker een nieuwe Timer of thread aanmaakt, kan het systeem snel falen wanneer het zonder threads komt te zitten.
Er zijn verschillende levensvatbare opties die werken op deze schaal: virtuele threads, Spring TaskExecutor en TaskScheduler, en Interval. Afhankelijk van je app en gebruiksscenario kan een van deze de beste optie voor jou zijn. Als standaard is Interval een betrouwbare keuze die speciaal is ontworpen om te werken met webforJ, en vereist geen aanvullende configuratie.