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>