[javascript] element.style.display="block" lage prioriteit

Pagina: 1
Acties:

  • Juup
  • Registratie: Februari 2000
  • Niet online
Als je in Javascript het volgende stukje code hebt:
JavaScript:
1
2
3
4
5
6
document.getElementById("myDiv").style.display = "block";
//alert("hi");
for (var i in aap)
{
  doMe(aap[i]);
}


Dan wordt eerst de hele foor loop doorlopen voordat die div zichtbaar wordt.
Als je de alert uitcommentarieert (scrabblewoord) dan wordt wel meteen de div zichtbaar.

Hoe zorg ik ervoor dat die div meteen zichtbaar wordt?

[ Voor 6% gewijzigd door Juup op 09-12-2005 12:47 ]

Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.


  • André
  • Registratie: Maart 2002
  • Laatst online: 15-04 09:54

André

Analytics dude

code:
1
2
3
4
5
6
7
8
9
10
document.getElementById("myDiv").style.display = "block";
setTimeout("lusje()", 10);

function lusje()
{
  for (var i in aap)
  {
    doMe(aap[i]);
  }
}

  • Juup
  • Registratie: Februari 2000
  • Niet online
Dank voor je input, André. Dat werkt inderdaad. Maar ik kan hier helaas geen setTimeout gebruiken omdat alles wat er NA die setTimeout staat dan meteen na de style.display=""; uitgevoerd wordt. setTimeout is asynchroon en een echte sleep bestaat niet in javascript.

Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.


  • André
  • Registratie: Maart 2002
  • Laatst online: 15-04 09:54

André

Analytics dude

Dan plaats je de rest toch ook in die nieuwe functie ;)

  • Juup
  • Registratie: Februari 2000
  • Niet online
Kannie ;)
Er zit een hele tree van functies die elkaar aanroepen. Zodra je er eentje asynchroon maakt moet je de hele volgorde omgooien. Dat lijkt me iets te veel van het goede.

Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.


  • André
  • Registratie: Maart 2002
  • Laatst online: 15-04 09:54

André

Analytics dude

Zet die display: block dan in de timeout :P

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Ipv de hele volgorde omdraaien, kan je toch ook je uitzondering in je timout zetten :P

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • Sendy
  • Registratie: September 2001
  • Niet online
Er is maar één execution thread in Javascript. Als je de uitzondering (het zetten van display) in een setTimeout gaat stoppen, dan wordt nog steeds de loop als eerst uitgevoerd. Pas wanneer deze is uitgeraast, en de browser even niets te doen heeft, dan komt de timeout pas. En is het zetten van de display dus te laat. :p

edit:

\o/, maar jammer dat het je probleem niet kan oplossen

[ Voor 13% gewijzigd door Sendy op 09-12-2005 13:32 ]


  • Juup
  • Registratie: Februari 2000
  • Niet online
I'm with Sendy

Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.

Pagina: 1