Skocz do zawartości

JavaScript, problem z Pętlami i "Sleep"


Przejdź do rozwiązania Rozwiązane przez sectasy,
# CSH External VIP Project

Masz dosyć problemów z czynnikiem zaufania w CS2 lub notorycznymi banami?

Sprawdź CSH External VIP Project.


Więcej informacji  

Rekomendowane odpowiedzi

function sleep(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}
 
 
for (var x = 0; x<150; x++)
{
var s = x.toString(); 
 
sleep(1000).then(() => {
    window.open("http://www.mojastrona.pl/costam" + s + ".pl" ,"_self")
})
 
}

Mam tu kodzik napisany przeze mnie z pomocą internetu,
który ma za zadanie Odpalać stronę http://www.mojastrona.pl/costam 
+
Każde wykonanie pętli na końcu linku ma nam dodać liczbę, a za liczbą ".pl"
co wykonanie pętli, liczba ta się ma zwiększyć.


Pierwsze wykonanie pętli...

http://www.mojastrona.pl/costam1.pl

Drugie wykonanie...

http://www.mojastrona.pl/costam2.pl


itd aż do 150 w moim przypadku.

Między wejściami na stronę oczywiście trzeba było dać jakiegoś "sleepa" 
w przeciwnym razie strona by się dobrze nie odpaliła, a już po 0,1sec następną wczytywało, przez co 9/10 by pominęło.

Wklejam to w console w chromie pod F12
Daje Enter i pętla jakby wykonuje się momentalnie cała i wchodzi na stronę http://www.mojastrona.pl/costam149.pl zamiast normalnie jak oczekiwałem 1, 2, 3 itd... 

Co tu jest źle ?;x

W miarę posuwania się po osi czasu szansa na przeżycia spada w końcu do zera dla każdego.

Odnośnik do komentarza

Nie wiem czy dobrze zrobiłeś używając fora, ponieważ pętla będzie inkrementować dopóki nie dojdzie do najmniejszej całkowitej od 150. Będzie to po prostu omijać. Nie wiem za bardzo jak ci to ułożyć z js bo nie ucze się tego języka, ale samo for nie wystarczy - tak mi się wydaje 

Odnośnik do komentarza

Nie wiem czy dobrze zrobiłeś używając fora, ponieważ pętla będzie inkrementować dopóki nie dojdzie do najmniejszej całkowitej od 150. Będzie to po prostu omijać. Nie wiem za bardzo jak ci to ułożyć z js bo nie ucze się tego języka, ale samo for nie wystarczy - tak mi się wydaje 

Ja jedynie w c++ się bawię, wiec też nie wiem jak to odpowiednio ułożyć. ale to co chce tu uzyskać nawet w tym cpp to napisałem, tyle ze z każdą nowo odpaloną stroną, odpalała się przeglądarka > ładowała strona > zamykała przeglądarka i pętla, przez co traciło się sporo czasu no i brak możliwości korzystania z PC, a w js wszystko będzie działo się w przeglądarce wiec będzie szybciej i wygodniej.

 

 

Na pętli While podobny efekt, jeszcze do while zaraz spróbuje jakoś.

Próbowałem też w jakiś sposób ze pętla w pętli, ale to już kompletnie nie działa jak powinno ; d

kombinowałem już na tyle różnych sposobów ze oezu.

Myślałem też czy to nie jest wina tego że może źle zamieniam numerki na string

 

var s = x.toString(); 
 

W miarę posuwania się po osi czasu szansa na przeżycia spada w końcu do zera dla każdego.

Odnośnik do komentarza
  • Rozwiązanie

Nie ogarniam js, ale wydaje mi się, że powinieneś używać "await" przy sleepie.

 

Jak możesz to spróbuj:

 

function sleep(ms){  return new Promise(resolve => setTimeout(resolve, ms));}  for (var i = 0; i < 150; ++i){await sleep(1000);window.open("http://mojastrona.pl/" + i.toString(), "_self");}
Spróbuj powyższy kod zarówno z wykorzystaniem "await" jak i bez i daj znać czy działa :D

 

Z await nie trybi wcale, bez await to samo co opisuje temat, kończy pętle i wbija na ostatnią stronę ( W sensie ostatni nr)

 

Edit -----------

 

 

var lb = 1;
var wnd;
 
function openWindow(){
    wnd = window.open(['http://www.mojastrona.pl/costam' + lb + '/'][0], '', '');
lb++;
    setTimeout(function () {
         wnd.close(); 
         if(lb < 15) openWindow(); 
    }, 1500);
}
 
openWindow();

jest ok, Problem rozwiązany Iks de.


Edytowane przez GrimWP

W miarę posuwania się po osi czasu szansa na przeżycia spada w końcu do zera dla każdego.

Odnośnik do komentarza
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Regulamin. Polityka prywatności