• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Opóźnienie wysłania danych

Object Storage Arubacloud
0 głosów
418 wizyt
pytanie zadane 16 sierpnia 2021 w JavaScript przez MarCiu Nowicjusz (160 p.)
Witam.

Mianowicie mam suwak z wyborem wartości. Powiedzmy 0-100 ze skokiem co jeden.
Skrypt wywołuje się przy zmianie wartości suwaka i wysyła dane do mikroprocesora który steruje na tej podstawie urządzeniem. Jest to mały mikroprocesorek i nie jest w stanie tak często odsłuchiwać nadchodzące dane jak ja na stronie bawię się suwakiem. Więc przydało by się pewne opóźnienie (daj my na to 100ms) i dopiero wysłać ostateczne dane.

Wcześniej program miałem na pisany w BASICU na telefon, jako aplikację. Tam podczas zmiany wartości na suwaku uruchamiałem timer, który po odliczeniu tych 100ms dopiero uruchamiał procedurę wysłania danych. Tworzenie danego timera mało tę cechę, że nadpisywało poprzedni i ten jak by zaczynał dopiero odliczać od początku. Co mało tę cechę, że dopiero ten ostatni był, aktywny gdy przestawało się ruszać suwakiem i dane były wysyłane z odpowiednim opóźnieniem.

Teraz aplikację staram się przenieść na stronę html. Nie wiem jak wykonać odpowiednie opóźnienie w Javascipt'cie.

Tu każde wywołanie pętli opóźniającej tworzy nowy zegar, który i tak działa w tle i swoją funkcję wykona i dane wyśle. Nowe wywołanie nie nadpisuje starego a tworzy nowy odliczający zegar.

Czy takie coś jest możliwe wykonanie w Javascipc'cie? I prosił bym o naprowadzenie jak to wykonać.

2 odpowiedzi

+3 głosów
odpowiedź 16 sierpnia 2021 przez edutomek Dyskutant (8,380 p.)

Jest możliwe: funkcje setTimeout i clearTimeout.

W oparciu o te funkcje w JS można to zrobić dokładnie tak samo, jak było w BASICu. No, może z jedną różnicą, bo tworzenie nowego timera nie kasuje poprzedniego. Trzeba więc będzie "ręcznie" usunąć poprzedni i ustawić nowy timer.
 

+2 głosów
odpowiedź 16 sierpnia 2021 przez pablop76 VIP (123,180 p.)
Myślę , że możesz wykorzystać technikę, która nazywa się throttle. Czyli wywoływanie funkcji zwrotnej określoną ilość razy w danym czasie.
komentarz 16 sierpnia 2021 przez MarCiu Nowicjusz (160 p.)
Bardzo dziękuję za pomoc. Lekarstwem okazał się mechanizm throttle.

Wielki ukłon Panowie i podziękowania :)

Podobne pytania

0 głosów
1 odpowiedź 178 wizyt
pytanie zadane 14 grudnia 2020 w Sprzęt komputerowy przez Guarix76 Nowicjusz (120 p.)
0 głosów
1 odpowiedź 194 wizyt
0 głosów
1 odpowiedź 5,601 wizyt

92,579 zapytań

141,432 odpowiedzi

319,662 komentarzy

61,963 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...