Uhm nee, dat is alleen een vies woord als je het voor andere zaken dan tabulaire data gebruikt. In dit geval moet je gewoon een tabel gebruiken, divjes gebruiken om een tabel te simuleren is net zo smerig als tabellen voor de layout gebruiken.quote:Op maandag 9 september 2013 18:19 schreef karton2 het volgende:
Tabellen passen zich echter niet automatisch aan in hoogte en het is toch een vies woord wat ik her en der lees.
1 2 3 4 5 6 | function doeDit() { if (timer) clearTimeout(timer); timer = setTimeout(function() { doeDat(); }, 350); } |
1 2 3 4 5 6 7 8 9 | function doeDit() { if(typeof bezig === 'undefined') { doeDat(); bezig = true; } setTimeout(function() { delete bezig ; }, 350); } |
Het voordeel is dan toch dat je functie nog wordt aangeroepen nadat de timeout voorbij is?quote:Op maandag 9 september 2013 21:20 schreef Crutch het volgende:
setInterval?
en dan een check in je functie of ie bezig is of niet.
Het voordeel is dat je functie iedere <vul maar in> milliseconden wordt uitgevoerd, totdat jij zegt: "Ja ho, stop maar!"quote:Op maandag 9 september 2013 21:38 schreef pascal08 het volgende:
[..]
Het voordeel is dan toch dat je functie nog wordt aangeroepen nadat de timeout voorbij is?
1 2 3 | if(bezig) break; // vanaf hier alles wat ie moet doen als ie niet bezig is |
Als die functie continu blijft lopen, dan gaat er elke keer een request naar de server, want dat is wat er gebeurt in de functie. Lijkt me niet de bedoeling.quote:Op maandag 9 september 2013 21:58 schreef Crutch het volgende:
[..]
Het voordeel is dat je functie iedere <vul maar in> milliseconden wordt uitgevoerd, totdat jij zegt: "Ja ho, stop maar!"
Dan hoef je in die functie alleen maar te checken of het nodig is om uit te voeren met bijvoorbeeld:
[ code verwijderd ]
Waar is 'bezig' dan voor?quote:Op maandag 9 september 2013 23:23 schreef pascal08 het volgende:
[..]
Als die functie continu blijft lopen, dan gaat er elke keer een request naar de server, want dat is wat er gebeurt in de functie. Lijkt me niet de bedoeling.
Als de functie is aangeroepen wordt die variabele op true gezet. Zodra er weer een call komt, wordt dat stukje code met de if-statement niet uitgevoerd. Na 350ms wordt 'bezig' weer "undefined", zodat de functie opnieuw aangeroepen kan worden.quote:
Nog los van de rest van de oplossing vind ik het undefined maken van een variabele niet de netste manier. Het is gewoon een ja-nee vraag, dus zou je een boolean moeten gebruiken. True voor ja, false voor nee.quote:Op dinsdag 10 september 2013 23:28 schreef pascal08 het volgende:
[..]
Als de functie is aangeroepen wordt die variabele op true gezet. Zodra er weer een call komt, wordt dat stukje code met de if-statement niet uitgevoerd. Na 350ms wordt 'bezig' weer "undefined", zodat de functie opnieuw aangeroepen kan worden.
De reden dat ik dat gedaan heb is omdat 'bezig' niet per sé gedefineerd is, bijvoorbeeld bij het laden van de pagina. Ik zou dus ergens 'bezig' moeten initialiseren met false, dat zou netter zijn, dat ben ik met je eens. Verder is er toch geen verschil?quote:Op dinsdag 10 september 2013 23:40 schreef Light het volgende:
[..]
Nog los van de rest van de oplossing vind ik het undefined maken van een variabele niet de netste manier. Het is gewoon een ja-nee vraag, dus zou je een boolean moeten gebruiken. True voor ja, false voor nee.
Het klinkt alsof je iets heel erg aan het in elkaar hacken bent.quote:Op dinsdag 10 september 2013 23:42 schreef pascal08 het volgende:
[..]
De reden dat ik dat gedaan heb is omdat 'bezig' niet per sé gedefineerd is, bijvoorbeeld bij het laden van de pagina. Ik zou dus ergens 'bezig' moeten initialiseren met false, dat zou netter zijn, dat ben ik met je eens. Verder is er toch geen verschil?
Qua snelheid zal het weinig tot niets schelen idd. Blijft alleen staan dat het netter is, en later ook weer sneller duidelijk. (Je moet het ook snel snappen als je over zes maanden een kleine aanpassing wilt doen.)quote:Op dinsdag 10 september 2013 23:42 schreef pascal08 het volgende:
[..]
De reden dat ik dat gedaan heb is omdat 'bezig' niet per sé gedefineerd is, bijvoorbeeld bij het laden van de pagina. Ik zou dus ergens 'bezig' moeten initialiseren met false, dat zou netter zijn, dat ben ik met je eens. Verder is er toch geen verschil?
Dan begin je toch pas wanneer de pagina wel geladen is?quote:Op dinsdag 10 september 2013 23:42 schreef pascal08 het volgende:
[..]
De reden dat ik dat gedaan heb is omdat 'bezig' niet per sé gedefineerd is, bijvoorbeeld bij het laden van de pagina.
quote:Op dinsdag 10 september 2013 23:50 schreef Scorpie het volgende:
[..]
Het klinkt alsof je iets heel erg aan het in elkaar hacken bent.
6 maanden? Ik weet een uur later al niet meer waarvoor bepaalde regels waren.quote:Op dinsdag 10 september 2013 23:52 schreef Light het volgende:
[..]
Qua snelheid zal het weinig tot niets schelen idd. Blijft alleen staan dat het netter is, en later ook weer sneller duidelijk. (Je moet het ook snel snappen als je over zes maanden een kleine aanpassing wilt doen.)
Ik bedoel dat die variabele 'bezig' nog niet gedefinieerd is als de functie nog niet is aangeroepen. Na het laden van de pagina bijvoorbeeld. Ik zie alleen de noodzaak niet om 'bezig' eerst op false te zetten. Extra regel en geen performance winst. Leesbaarheid vind ik wel prima zo.quote:Op dinsdag 10 september 2013 23:53 schreef Tijn het volgende:
[..]
Dan begin je toch pas wanneer de pagina wel geladen is?
Hoezo een extra regel? Of je nou var bezig; hebt of var bezig = false; maakt toch niet uit?quote:Op woensdag 11 september 2013 00:00 schreef pascal08 het volgende:
[..]
Ik zie alleen de noodzaak niet om 'bezig' eerst op false te zetten. Extra regel en geen performance winst. Leesbaarheid vind ik wel prima zo.
quote:Op woensdag 11 september 2013 00:04 schreef Tijn het volgende:
[..]
Hoezo een extra regel? Of je nou "var bezig;" hebt of "var bezig = false;" maakt toch niet uit?
De reden dat je 'm wel op false wilt initialiseren lijkt me duidelijk: hij is niet bezig. Als je de inhoud van de variabelen van je eigen programma niet kunt vertrouwen, waar kun je dan nog wel van op aan?
1 2 3 4 5 6 7 8 9 | function doeDit() { if(typeof bezig === 'undefined') { doeDat(); bezig = true; } setTimeout(function() { delete bezig ; }, 350); } |
1 2 3 4 5 6 7 8 9 10 | var bezig = false; function doeDit() { if(typeof bezig === 'undefined') { doeDat(); bezig = true; } setTimeout(function() { delete bezig ; }, 350); } |
Over variabele scopes heb ik laatst wel een stuk uit m'n boek gelezen. Blijkbaar is dat niet blijven hangen.quote:Op woensdag 11 september 2013 00:08 schreef Tijn het volgende:
Het is echt nasty om je variabelen helemaal niet te declareren. Bovendien maak je op deze manier alles global, dat is ook niet echt aan te raden.
Een functie disablen voor een x aantal milliseconden ná het aanroepen van deze functie.quote:Op woensdag 11 september 2013 00:13 schreef Tijn het volgende:
Wat is nou eigenlijk de bedoeling van dit hele gebeuren?
1 2 3 4 5 6 7 | function foo() { bar(); } function bar() { //Deze functie mag nu de komende x aantal milliseconden niet meer worden uitgevoerd. } |
Dat dus. Lijkt wel alsof hij eigenlijk functie aanroepen moet gaan batchen.quote:Op woensdag 11 september 2013 00:23 schreef Tijn het volgende:
Maar waarom dan? En sowieso, waarom wil je die hele functie uitschakelen? Je kunt toch gewoon binnen bar() een if-statement maken waarin iets al dan niet wordt uitgevoerd?
1 2 3 4 5 6 7 8 9 10 11 12 13 | var allowed = true; function doIt() { if(allowed) { allowed = false; setTimeout(function() { allowed = true; }, 350); // doe hier iets } } |
Dat doe ik toch ook? Alleen die variabele in de if-statement zou eigenlijk een bool moeten zijn.quote:Op woensdag 11 september 2013 00:23 schreef Tijn het volgende:
Maar waarom dan? En sowieso, waarom wil je die hele functie uitschakelen? Je kunt toch gewoon binnen bar() een if-statement maken waarin iets al dan niet wordt uitgevoerd?
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |