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

JS - nieskończona pętla w tle

Object Storage Arubacloud
0 głosów
920 wizyt
pytanie zadane 27 grudnia 2018 w JavaScript przez kacperl95 Obywatel (1,980 p.)

Cześć,

napisałem sobie funkcje w JS w której jest nieskończona pętla while.

function x(){
	while(true){
		//skrypt
	}
}

składnia jest poprawna, natomiast strona oczekuje na zakończenie działania pętli inaczej stronie nie przestaje się ładować. Jak zrobić żeby strona się załadowała a skrypt działał w tle? Nie korzystam z funkcji setInterval, ponieważ nie chce aby funkcja się wykonywała co jakiś czas, tylko żeby zaczynała się wykonywać po zakończeniu.

Pozdrawiam.

komentarz 27 grudnia 2018 przez shotokan Nałogowiec (39,660 p.)
A jak sobie wyobrażasz działanie skryptu, w którym jest zapętlona (nieskończona) pętla? Nie uważasz, że coś jest tutaj nie tak...
komentarz 27 grudnia 2018 przez kacperl95 Obywatel (1,980 p.)
skoro nie ma nic złego w powtarzaniu czegoś co dwie sekundy, to jaki jest problem w powtarzaniu czegoś co czas wykonywania się pętli?
1
komentarz 27 grudnia 2018 przez ScriptyChris Mędrzec (190,190 p.)

Zapoznaj się z tematem (a)synchroniczności w JavaScript.

1 odpowiedź

+1 głos
odpowiedź 27 grudnia 2018 przez Konrad Fx Mądrala (6,910 p.)
wybrane 28 grudnia 2018 przez kacperl95
 
Najlepsza
Do tematu powinniśmy podejść troszkę z innej strony, po co chcesz użyć takiej nieskończonej pętli bo na pewno są lepsze rozwiązania na posiadany przez Ciebie problem :)

Daj znać jaki chcesz efekt a zapewne z ekipą Tobie pomożemy

I a props twojej wypowiedzi, pozwolę ją sobie zacytować

"skoro nie ma nic złego w powtarzaniu czegoś co dwie sekundy, to jaki jest problem w powtarzaniu czegoś co czas wykonywania się pętli?"

A kto tak powiedział że nie ma w tym nic złego? To jest bardzo nieoptymalne i praktycznie nigdy się czegoś takiego nie stosuje :) Musimy się wystrzegać wszystkich pętli i iteratorów jak się da bo one bardzo ale to bardzo zmniejszają nam wydajność i zwiększają czasy ładowania.

Więc czekamy na odpowiedź :)
komentarz 28 grudnia 2018 przez kacperl95 Obywatel (1,980 p.)
Potrzebuje nasluchiwanie bazy danych MySQL w czasie rzeczywistym, czas mnie goni więc nie chcę się uczyć czegoś całkiem nowego. Dlatego nie będę się bawić z websocetem, firebase odpada przez ograniczenia w darmowym abonamencie. Chciałbym sprawdzać nieustannie czy doszły nowe rekordy w tabeli wydarzenia jeżeli tak to chciałbym wykonać pewne działania.
komentarz 28 grudnia 2018 przez Bosswell Nałogowiec (36,470 p.)
Powodzenia :) zajedziesz cały serwer i bazę
komentarz 28 grudnia 2018 przez kacperl95 Obywatel (1,980 p.)
Macie pomysł na inną logikę?
1
komentarz 28 grudnia 2018 przez Konrad Fx Mądrala (6,910 p.)

@kacperl95,  Kolega Bosswell ma racje, zajedziesz czymś takim server. Dobrym podejściem wydaje mi się zrobienie triggerów w bazie danych:

https://softwareengineering.stackexchange.com/questions/283177/how-to-get-real-time-notifications-when-a-database-change-insert-update-dele

Tutaj w odpowiedzi użytkownik napisał jak to zrobić :)

A jeśli chodzi o rozmowę między backendem a frontem jeśli chcemy bezpośrednią komunikacje to możemy użyć websocketów ale to przerost formy nad treścią w podanym przez Ciebie przypadku. 

Powinieneś zaznajomić się z dwoma koncepcjami w programowaniu pull i push. Co dokładniej przez to można rozumieć, czy lepiej pytać się bazy danych co 1 sekundę czy ma już nowe dane, czy też lepiej dać możliwość "dania sygnału" przez bazę jeśli coś do niej nowego wpłynie lub wypłynie.

Lepiej nasłuchiwać na zmiany niż co chwilę o nie pytać :)

Proszę, przeczytaj jeszcze o jedym wzorcu programistycznym: (bądź też posłuchaj)

Wzorzec obserwator:

https://pawelgrzybek.com/the-observer-pattern-in-javascript-explained/

Lub też film 

https://youtu.be/_BpmfnqjgzQ

 

Pozdrawiam ;)

Podobne pytania

0 głosów
0 odpowiedzi 476 wizyt
0 głosów
1 odpowiedź 312 wizyt
pytanie zadane 7 listopada 2020 w Mikrokontrolery przez xdmik23 Gaduła (3,000 p.)
0 głosów
1 odpowiedź 545 wizyt
pytanie zadane 6 maja 2020 w C i C++ przez Ladro Nowicjusz (140 p.)

92,596 zapytań

141,446 odpowiedzi

319,720 komentarzy

61,981 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!

...