• 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

VPS Starter Arubacloud
0 głosów
891 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 422 wizyt
0 głosów
1 odpowiedź 301 wizyt
pytanie zadane 7 listopada 2020 w Mikrokontrolery przez xdmik23 Gaduła (3,000 p.)
0 głosów
1 odpowiedź 527 wizyt
pytanie zadane 6 maja 2020 w C i C++ przez Ladro Nowicjusz (140 p.)

92,455 zapytań

141,263 odpowiedzi

319,100 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...