![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 21.08.2012 Ostrzeżenie: (10%) ![]() ![]() |
Witam
W przypadku takiej pętli: Kod for (n = 0; n < 50000; ++n) { var str = Math.floor(Math.random()*268435455).toString(16); document.write(str + "<br />"); } Chciałem wyprowadzić wartość "n" na ekran w trakcie wykonywania się pętli, podpowie mi ktoś? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Ostatnio straszni się lenistwo na form rozbestwiło
![]() Dlaczego nie przeczytasz pierwszego lepszego kursu JS i nie zrobisz tego sam? Popatrz: 1. Kod for (n = 0; n < 50000; ++n) to jest pętla - tak popularna, że w Google znajdziesz wszystko dokładnie opisane setki razy2. Kod var str = Math.floor(Math.random()*268435455).toString(16); To jest przypisanie do zmiennej jakieś wartości - Ciebie w tym problemie nawet nie interesuje jaka to wartość3. Kod document.write(str + "<br />"); Tu cała zagadka ![]() Jak byś poświęcił 1min Twojego cennego czasu to byś wiedział, że ta linia wyświetla coś na ekran. Już wiesz, że w pętli nadawana jest zmiennej "str" jakaś wartość. Jak łatwo się domyślić w tym miejscu ją wyświetlasz. Dodatkowo jest jakieś dziwne "<br>" to HTML - też po przeczytaniu kursu byś wiedział. Teraz zadanie do Ciebie domyślić się co masz zrobić, a ja daję Ci podpowiedź - jak sam prosiłeś: Cytat podpowie mi ktoś? Kod <script> var testowaZmienna = 5; alert( testowaZmienna ); alert( testowaZmienna + " a tu jakiś napis"); var testowaZmienna2 = 6; alert( testowaZmienna + " jakiś napis i obok druga zmienna " + testowaZmienna2 ); document.write("Tu wyświetlamy na ekran"); </script> Teraz już wystarczy trochę pomyśleć i ew. przeczytać kurs. Powodzenia! Ten post edytował kamil4u 30.08.2012, 20:07:52 -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 21.08.2012 Ostrzeżenie: (10%) ![]() ![]() |
Super, że poświęciłeś swój czas, ale uważam że sam go marnotrawisz. Na 100% informacji jaką przekazałeś 90% to twoje wywody.
A skąd Ty tak dobrze wiesz ile czasu poświęciłem na poszukanie rozwiązania? Czemu maja służyć jakieś docinki? Czy ja zadałem pytanie na temat funkcjonowania pętli? A może przypisywanie do zmiennej wartości? Jakoś sobie nie przypominam. Dlaczego zawsze tak jest, że nie obędzie się bez złośliwości? Nie potrafisz się zachować przyjaźnie jak normalny człowiek? Takie to trudne czy to cecha wrodzona większości polaków? Dlaczego zakładasz, że ktoś idzie na łatwiznę? A może faktycznie nie potrafiłem sobie z tym poradzić nawet przy pomocy wujka googla? Czy Ty sam byś chciał żeby Cię tak ktoś traktował? Wyobraź sobie, że jesteś w obcym mieście szukasz ulicy, a ludzie Ci odpowiadają "kup sobie pan nawigację", albo "kup sobie pan mapę". Troszkę to chamskie, nie sądzisz? Ostatnio straszni się lenistwo na form rozbestwiło ![]() Dlaczego nie przeczytasz pierwszego lepszego kursu JS i nie zrobisz tego sam? Popatrz: 1. Kod for (n = 0; n < 50000; ++n) to jest pętla - tak popularna, że w Google znajdziesz wszystko dokładnie opisane setki razy2. Kod var str = Math.floor(Math.random()*268435455).toString(16); To jest przypisanie do zmiennej jakieś wartości - Ciebie w tym problemie nawet nie interesuje jaka to wartość3. Kod document.write(str + "<br />"); Tu cała zagadka ![]() Jak byś poświęcił 1min Twojego cennego czasu to byś wiedział, że ta linia wyświetla coś na ekran. Już wiesz, że w pętli nadawana jest zmiennej "str" jakaś wartość. Jak łatwo się domyślić w tym miejscu ją wyświetlasz. Dodatkowo jest jakieś dziwne "<br>" to HTML - też po przeczytaniu kursu byś wiedział. Teraz zadanie do Ciebie domyślić się co masz zrobić, a ja daję Ci podpowiedź - jak sam prosiłeś: Kod <script> var testowaZmienna = 5; alert( testowaZmienna ); alert( testowaZmienna + " a tu jakiś napis"); var testowaZmienna2 = 6; alert( testowaZmienna + " jakiś napis i obok druga zmienna " + testowaZmienna2 ); document.write("Tu wyświetlamy na ekran"); </script> Teraz już wystarczy trochę pomyśleć i ew. przeczytać kurs. Powodzenia! P.S. Jak taki mądry jesteś, to wyświetl wartość licznika pętli dopóki się nie skończy ![]() Super, że poświęciłeś swój czas, ale uważam że sam go marnotrawisz. Na 100% informacji jaką przekazałeś 90% to twoje wywody. A skąd Ty tak dobrze wiesz ile czasu poświęciłem na poszukanie rozwiązania? Czemu maja służyć jakieś docinki? Czy ja zadałem pytanie na temat funkcjonowania pętli? A może przypisywanie do zmiennej wartości? Jakoś sobie nie przypominam. Dlaczego zawsze tak jest, że nie obędzie się bez złośliwości? Nie potrafisz się zachować przyjaźnie jak normalny człowiek? Takie to trudne czy to cecha wrodzona większości polaków? Dlaczego zakładasz, że ktoś idzie na łatwiznę? A może faktycznie nie potrafiłem sobie z tym poradzić nawet przy pomocy wujka googla? Czy Ty sam byś chciał żeby Cię tak ktoś traktował? Wyobraź sobie, że jesteś w obcym mieście szukasz ulicy, a ludzie Ci odpowiadają "kup sobie pan nawigację", albo "kup sobie pan mapę". Troszkę to chamskie, nie sądzisz? |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Cytat Czemu maja służyć jakieś docinki? Czy ja zadałem pytanie na temat funkcjonowania pętli? A może przypisywanie do zmiennej wartości? Nie - nie zadałeś, ale to jest ważne do rozwiązania problemu. Nie mogę wiedzieć na jakim jesteś poziomie, jeśli chodzi o JS, a nawet wiem po tym krótkim kodzie, że raczej w tym języku jesteś początkującym. Główny powód to document.write ,które praktycznie się już nie używa. Cytat Dlaczego zawsze tak jest, że nie obędzie się bez złośliwości? Nie potrafisz się zachować przyjaźnie jak normalny człowiek? Takie to trudne czy to cecha wrodzona większości polaków? Jeśli już to Polaków. Jeśli nie szanujesz mnie to przynajmniej szanuj resztę naszego społeczeństwa. Teraz tak ogólnie( nie personalnie do Ciebie - o tym zaraz ) . Jeżeli zdarzy się ktoś kto nie poświęcił swojego czasu, a liczy od razu na gotowca( i to się zdarza klika razy dziennie ), to przyznasz, że po pewnym czasie staje się to dość irytujące. Cytat P.S. Jak taki mądry jesteś, to wyświetl wartość licznika pętli dopóki się nie skończy smile.gif Teraz na reszcie zrozumiałem problem. Wcześniej myślałem, że chodzi Ci o samo dodanie zmiennej licznikowej, czyli Kod document.write(n+" -->" + str + "<br />"); , czyli łączenia zmiennych( operator + ). W takim wypadku myślę, że możesz mnie zrozumieć, że myślałem, że w ogóle nie poświęciłeś swojego czasu na rozwiązanie problemu, bo łączenie zmiennych jest na początku każdego kursu JS. Przepraszam. Ale na swoje usprawiedliwienie dodam, że dość marnie opisałeś swój problem. Następnym razem napisz dosadniej, co jest głównym problemem, bo czytając szybko kilkanaście postów, nie sposób skupić się nad każdym słowem ![]() Teraz odnośnie problemu: Do końca się nie da. Problem polega na tym, że czas wyświetlenia czegoś na ekran trwa dość długo. Jeżeli chodzi Ci tylko o to, żeby nie muliło przeglądarki piszesz to wszystko bardziej profesjonalnie i trwa to około 3s i masz wszystko szybko wyświetlone: Kod <div id="test"> </div> <script> var parent = document.getElementById("test"); var el,str,n; for (n = 0; n < 50000; ++n){ str = Math.floor(Math.random()*268435455).toString(16); el = document.createTextNode(n +" --> "+ str); parent.appendChild( el ); el = document.createElement('br'); parent.appendChild( el ); } </script> Jeżeli jednak chcesz mieć taki efekt pojawienia się tego na ekranie to: Kod <div id="test"> </div> <script> var parent = document.getElementById("test"); var n = 0; var el,str,n; petla = setInterval( function(){ if( n<5000 ){ str = Math.floor(Math.random()*268435455).toString(16); el = document.createTextNode(n++ +" --> "+ str); parent.appendChild( el ); el = document.createElement('br'); parent.appendChild( el ); } else { clearInterval( petla ); } }, 1 ); </script> Ew. jak chcesz wszystko jeszcze szybciej to wyświetlaj to paczkami np. co 100 wpisów: Kod <div id="test"> </div> <script> var parent = document.getElementById("test"); var n = 1; var el, el2, str,n; petla = setInterval( function(){ if( n<5000 ){ el2 = document.createDocumentFragment(); for(; (n%100 && n<5000); n++){ str = Math.floor(Math.random()*268435455).toString(16); el = document.createTextNode(n++ +" --> "+ str); el2.appendChild( el ); el = document.createElement('br'); el2.appendChild( el ); } parent.appendChild( el2 ); } else { clearInterval( petla ); } }, 1 ); </script> --edit-- Osobiście chyba bym zrobił coś na wzór tego, czyli wyświetlenie 100, a później dopiero całą resztę : Kod <div id="test">
</div> <script> var parent = document.getElementById("test"); var el, el2, str,n; el2 = document.createDocumentFragment(); for (n = 0; n < 100; ++n){ str = Math.floor(Math.random()*268435455).toString(16); el = document.createTextNode(n +" --> "+ str); el2.appendChild( el ); el = document.createElement('br'); el2.appendChild( el ); } parent.appendChild( el2 ); el2 = document.createDocumentFragment(); setTimeout( function(){ for (; n < 50000; ++n){ str = Math.floor(Math.random()*268435455).toString(16); el = document.createTextNode(n +" --> "+ str); el2.appendChild( el ); el = document.createElement('br'); el2.appendChild( el ); } parent.appendChild( el2 );}, 100); </script> Ten post edytował kamil4u 30.08.2012, 22:27:57 -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 21.08.2012 Ostrzeżenie: (10%) ![]() ![]() |
Drogi Kamilu not 4 me
![]() Dużo napisałeś, chwała Ci, ale chyba nie czytałeś dokładnie mojego pytania w pierwszym poście. Specjalnie wstawiłem tylko fragment kodu i na dobrą sprawę mogłem zwrzeć w poście ten kod nawet tak: Kod for (n = 0; n < 50000; ++n) { document.write(n + "<br />"); } albo tak: Kod for (n = 0; n < 50000; ++n) W swoich wszystkich postach nawet się nie otarłeś o problem ![]() A pytanie brzmiało : Chciałem wyprowadzić wartość "n" na ekran w trakcie wykonywania się pętli, podpowie mi ktoś? Przepraszam, otarłeś się o problem, tym fragmentem kodu: Kod <div id="test"> </div> <script> var parent = document.getElementById("test"); var n = 0; var el,str,n; petla = setInterval( function(){ if( n<5000 ){ str = Math.floor(Math.random()*268435455).toString(16); el = document.createTextNode(n++ +" --> "+ str); parent.appendChild( el ); el = document.createElement('br'); parent.appendChild( el ); } else { clearInterval( petla ); } }, 1 ); Jednak zapomniałeś, że mówimy o pętli "for"! "Uprzejmości" nie będę z Tobą wymieniał, bo to nie miejsce na to, odniosę się tylko do szacunku, przykładem jego braku jest twoja piersza odpowiedź. Skupmy się więc na kodzie i problemie ![]() Nie - nie zadałeś, ale to jest ważne do rozwiązania problemu. Nie mogę wiedzieć na jakim jesteś poziomie, jeśli chodzi o JS, a nawet wiem po tym krótkim kodzie, że raczej w tym języku jesteś początkującym. Główny powód to document.write ,które praktycznie się już nie używa. Jeśli już to Polaków. Jeśli nie szanujesz mnie to przynajmniej szanuj resztę naszego społeczeństwa. Teraz tak ogólnie( nie personalnie do Ciebie - o tym zaraz ) . Jeżeli zdarzy się ktoś kto nie poświęcił swojego czasu, a liczy od razu na gotowca( i to się zdarza klika razy dziennie ), to przyznasz, że po pewnym czasie staje się to dość irytujące. Teraz na reszcie zrozumiałem problem. Wcześniej myślałem, że chodzi Ci o samo dodanie zmiennej licznikowej, czyli Kod document.write(n+" -->" + str + "<br />"); , czyli łączenia zmiennych( operator + ). W takim wypadku myślę, że możesz mnie zrozumieć, że myślałem, że w ogóle nie poświęciłeś swojego czasu na rozwiązanie problemu, bo łączenie zmiennych jest na początku każdego kursu JS. Przepraszam. Ale na swoje usprawiedliwienie dodam, że dość marnie opisałeś swój problem. Następnym razem napisz dosadniej, co jest głównym problemem, bo czytając szybko kilkanaście postów, nie sposób skupić się nad każdym słowem ![]() Teraz odnośnie problemu: Do końca się nie da. Problem polega na tym, że czas wyświetlenia czegoś na ekran trwa dość długo. Jeżeli chodzi Ci tylko o to, żeby nie muliło przeglądarki piszesz to wszystko bardziej profesjonalnie i trwa to około 3s i masz wszystko szybko wyświetlone: Kod <div id="test"> </div> <script> var parent = document.getElementById("test"); var el,str,n; for (n = 0; n < 50000; ++n){ str = Math.floor(Math.random()*268435455).toString(16); el = document.createTextNode(n +" --> "+ str); parent.appendChild( el ); el = document.createElement('br'); parent.appendChild( el ); } </script> Jeżeli jednak chcesz mieć taki efekt pojawienia się tego na ekranie to: Kod <div id="test"> </div> <script> var parent = document.getElementById("test"); var n = 0; var el,str,n; petla = setInterval( function(){ if( n<5000 ){ str = Math.floor(Math.random()*268435455).toString(16); el = document.createTextNode(n++ +" --> "+ str); parent.appendChild( el ); el = document.createElement('br'); parent.appendChild( el ); } else { clearInterval( petla ); } }, 1 ); </script> Ew. jak chcesz wszystko jeszcze szybciej to wyświetlaj to paczkami np. co 100 wpisów: Kod <div id="test"> </div> <script> var parent = document.getElementById("test"); var n = 1; var el, el2, str,n; petla = setInterval( function(){ if( n<5000 ){ el2 = document.createDocumentFragment(); for(; (n%100 && n<5000); n++){ str = Math.floor(Math.random()*268435455).toString(16); el = document.createTextNode(n++ +" --> "+ str); el2.appendChild( el ); el = document.createElement('br'); el2.appendChild( el ); } parent.appendChild( el2 ); } else { clearInterval( petla ); } }, 1 ); </script> --edit-- Osobiście chyba bym zrobił coś na wzór tego, czyli wyświetlenie 100, a później dopiero całą resztę : Kod <div id="test"> </div> <script> var parent = document.getElementById("test"); var el, el2, str,n; el2 = document.createDocumentFragment(); for (n = 0; n < 100; ++n){ str = Math.floor(Math.random()*268435455).toString(16); el = document.createTextNode(n +" --> "+ str); el2.appendChild( el ); el = document.createElement('br'); el2.appendChild( el ); } parent.appendChild( el2 ); el2 = document.createDocumentFragment(); setTimeout( function(){ for (; n < 50000; ++n){ str = Math.floor(Math.random()*268435455).toString(16); el = document.createTextNode(n +" --> "+ str); el2.appendChild( el ); el = document.createElement('br'); el2.appendChild( el ); } parent.appendChild( el2 );}, 100); </script> |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Raczej się nie da. Petla nie jako wstrzymuje proces wyświetlania.
Musiałbyś to robić nie wpętli a kroczkami wywoływanymi co jakiś czas, coś ala to co ci już proponowano Kod <script type="text/javascript">
var n=0; function gp(){ document.write(n + "<br />"); n++; if (n<500) setTimeout(gp,0); } setTimeout(gp,0); </script> -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 21.08.2012 Ostrzeżenie: (10%) ![]() ![]() |
Rozumiem, dziekuję za konkretną odpowiedź.
Nie byłem pewien, ale już widzę, że pętla wywłaszcza wszystko. Raczej się nie da. Petla nie jako wstrzymuje proces wyświetlania. Musiałbyś to robić nie wpętli a kroczkami wywoływanymi co jakiś czas, coś ala to co ci już proponowano Kod <script type="text/javascript"> var n=0; function gp(){ document.write(n + "<br />"); n++; if (n<500) setTimeout(gp,0); } setTimeout(gp,0); </script> |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Cytat Przepraszam, otarłeś się o problem, tym fragmentem kodu: Cytat Jednak zapomniałeś, że mówimy o pętli "for"! Teraz to Ty czytasz nie dokładnie. Cytat W swoich wszystkich postach nawet się nie otarłeś o problem smile.gif A pytanie brzmiało : Chciałem wyprowadzić wartość "n" na ekran w trakcie wykonywania się pętli, podpowie mi ktoś? Moja odp. Cytat Do końca się nie da. Następnie podałem Ci klika możliwości: - szybkie wykonanie się pętli - wyświetlanie krokowe - wyświetlanie seriami po 100 - wyświetlanie najpierw 100, a potem, zanim ktoś zdąży przewinąć, całą resztę Teraz minuta skupienia i sam dochodzisz do wniosku, że nie da się w pętli for wyświetlać i literować na raz. Za to można problem obejść jednym z kodów, które zaproponowałem, w zależności od potrzeb. Myślę, że to już nie ocieranie się o problem, a jego wszystkie możliwe wariacje. Powodzenia w swoich projektach i pozdrawiam. --edit-- Jeszcze odnośnie Twoich postów i lenistwa Cytat A skąd Ty tak dobrze wiesz ile czasu poświęciłem na poszukanie rozwiązania? Google -> js wyświetlanie w pętli for -> http://forum.pclab.pl/topic/382588-JavaScr...nia-p%C4%99tli/ Cytat pętla jest wykonywana bez przerwania chyba ze takie zaplanujesz wiec nic dopóki pętla działa nie robisz ![]() Komentarz zbyteczny ![]() Ten post edytował kamil4u 31.08.2012, 13:08:01 -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 00:28 |