[TABLE] Hoe tabellen plaatsen

Pagina: 1
Acties:
  • 169 views sinds 30-01-2008
  • Reageer

  • André
  • Registratie: Maart 2002
  • Laatst online: 13:54

André

Analytics dude

Topicstarter
Iedereen die webpagina's maakt zit met het volgende probleem:

Als ik een lading data uit een database trek en die in een tabel zet met bijvoorbeeld 10 kolommen en 500 rijen dan duurt het lang voordat de pagina gerenderd is.

Die lange wachttijd ligt niet aan de zoek query, want als ik een paar timers op een pagina gooi zie ik dat het database gedeelte enkele milliseconden duurt maar het maken van de tabel duurt enkele seconden.

Is het misschien een oplossing om de tags <table> <tr> <td> te vervangen door geneste <div>'s i.c.m. stylesheets. Is dit sneller of maakt dat niets uit :?

Welke oplossing(en) hebben mijn alom gerespecteerde medetweakers _/-\o_ ooit gevonden omtrent dit probleem. Of sta ik (zoals mijn icon zegt) weer te lullen en gebruikt iedereen nog de <table>.

  • AxiMaxi
  • Registratie: December 2000
  • Laatst online: 27-05 15:33
Ik denk dat 't 'm zit in de parsing van de tabel, dus de berekening van de afmetingen enzo.
Heb je het al 's geprobeerd met WIDTH in de <TABLE> en <TD>?

Misschien dat dat sneller gaat?

[Hier had mijn handtekening kunnen staan]


  • Morrar
  • Registratie: Juni 2002
  • Laatst online: 16:50
Hmmz heb zelf wellis wat grote tabelletjes uitgespuugt en dat kan wellis duren ja... Denk niet dat divs echter veel op gaan lossen, maar heb het zelf dus niet getest. Enkele dingen waar je wel aan kan denken:

- gebruik zoveel mogelijk absolute waarden dat scheelt je browser een hoop rekenwerk...

- misschien idee om een browse-systeem te maken waardoor per pagina maar zeg 100 rijen tegelijk getoond worden. Is imho soms wel zo overzichtelijk...

  • André
  • Registratie: Maart 2002
  • Laatst online: 13:54

André

Analytics dude

Topicstarter
AxiMaxi schreef op 06 september 2002 @ 12:57:
Ik denk dat 't 'm zit in de parsing van de tabel, dus de berekening van de afmetingen enzo.
Heb je het al 's geprobeerd met WIDTH in de <TABLE> en <TD>?

Misschien dat dat sneller gaat?
Ja dat heb ik al geprobeerd en maakt niets uit.

Wat ik wel gevonden heb is in de style van je tabel het volgende zetten: "table-layout:fixed". Dan gaat het iets sneller maar het nadeel is dat de formaten van de eerste cel het formaat van de andere cellen bepaald. Daardoor hoeft IE niet zoveel te renderen want de formaten van de cellen staan al vast, maar mooi is anders.

  • TwoR
  • Registratie: Augustus 2002
  • Laatst online: 07:18

TwoR

Gekleurde stippen

Moet alles perse op 1 pagina staan?? Anders laat je het op 2 of drie pagina's komen dat scheeld denk ik heel vele tijd.

  • André
  • Registratie: Maart 2002
  • Laatst online: 13:54

André

Analytics dude

Topicstarter
TwoR schreef op 06 september 2002 @ 13:03:
Moet alles perse op 1 pagina staan?? Anders laat je het op 2 of drie pagina's komen dat scheeld denk ik heel vele tijd.
Ik weet precies wat er mogelijk is met asp php xml enz enz, en dat het op meer pagina's kan is mij ook wel duidelijk.

Maar mijn vraag gaat alleen over het renderen van tabellen...

  • Expander
  • Registratie: Februari 2001
  • Niet online
Wat voor tags je gebruikt maakt voor het maken van die tags niets uit.

Met andere woorden: je probleem ligt aan de server-side kant en heeft eigenlijk helemaal niets met tabellen te maken.

Expanding the inexpandable


  • André
  • Registratie: Maart 2002
  • Laatst online: 13:54

André

Analytics dude

Topicstarter
Expander schreef op 06 september 2002 @ 13:15:
Wat voor tags je gebruikt maakt voor het maken van die tags niets uit.

Met andere woorden: je probleem ligt aan de server-side kant en heeft eigenlijk helemaal niets met tabellen te maken.
Waar heb je het over??????????????????? LEZEN!
Wie heeft het over serverside?, ik heb het over client-side rendering van tabellen!!!

  • disjfa
  • Registratie: April 2001
  • Laatst online: 12-05 15:11

disjfa

be

Yogho schreef op 06 september 2002 @ 13:25:
[...]

Waar heb je het over??????????????????? LEZEN!
Wie heeft het over serverside?, ik heb het over client-side rendering van tabellen!!!
en daar moet toch die data in die je uit de db trekt :?

en dat duurt lang :)

anders maak je ze een bepaalde breedte, dan zijn ze dat iig al :)

disjfa - disj·fa (meneer)
disjfa.nl


  • Willem
  • Registratie: Februari 2001
  • Laatst online: 14:18
disjfa:
en daar moet toch die data in die je uit de db trekt :?

en dat duurt lang :)



LEZEN LEZEN LEZEN LEZEN LEZEN LEZEN zeg ik je

Die lange wachttijd ligt niet aan de zoek query, want als ik een paar timers op een pagina gooi zie ik dat het database gedeelte enkele milliseconden duurt maar het maken van de tabel duurt enkele seconden.

Motor (of auto) onderhoud bijhouden


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Heeft toch onder andere met de manier van renderen te maken in je browser.

Terugkomend op je vraag:
Is het misschien een oplossing om de tags <table> <tr> <td> te vervangen door geneste <div>'s i.c.m. stylesheets. Is dit sneller of maakt dat niets uit :?
Ik zou zeggen dat divs sneller zichtbaar moet zijn, omdat je niet op dezelfde manier rendered.

IE rendered (afhankelijk van je tabel-ontwerp) eerst de hele tabel en vervolgens showed ie de tabel in je browser.

Kan een leuke test worden (2000 rows of 2000 div's) :)

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.


  • André
  • Registratie: Maart 2002
  • Laatst online: 13:54

André

Analytics dude

Topicstarter
JAAAAA, er is iemand die leest. _/-\o_

Inderdaad dat kan een leuke test worden. Ik ga met asp even 2 pagina's uitpoepen, dan view-source en dat even saven. Dan krijg ik 2 html pagina met tabellen: 1 met <td> en 1 met <div>.

Moment, i'm testing....

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

I'm waiting :)

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.


  • André
  • Registratie: Maart 2002
  • Laatst online: 13:54

André

Analytics dude

Topicstarter
Uitslag test op een (zie specs) pc:

Ik heb door middel van asp 2 html's laten genereren, 1 met een 'ouderwetse' tabel en 1 met een tabel d.m.v <div>:

De tabel bestond uit 10 kolommen van 80px breed met het woordje "hallo" erin, en uit 20000 rijen.

De pagina met de <td> tags deed er gemiddeld 18,5 seconden over en de pagina met de <div> tags deed er gemiddeld 6,8 seconden over.

Conclusie: <tabel><tr><td> zijn deprecated vanaf nu. Je moet gewoon <div> gebruiken omdat dat veel sneller is. Je moet er dan wel rekening mee houden dat je het volgende in je stylsheet zet:
code:
1
2
3
DIV {
  display: inline;
}

Anders geeft IE na elke div een line-break.

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Mag ik de source van je asp-je?

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.


  • André
  • Registratie: Maart 2002
  • Laatst online: 13:54

André

Analytics dude

Topicstarter
BtM909 schreef op 06 september 2002 @ 16:14:
Mag ik de source van je asp-je?
Ja dat mag, moment.

ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<%@ LANGUAGE="VBSCRIPT"%>
<html>
  <head>
    <title>Test</title>
    <style>
      DIV {
        border: 1px solid;
        position: relative;
        display: inline;
       }
    </style>
    <script language="javascript">
      d = new Date();
      BT = d.getTime();

      function Oke()
      {
        e = new Date();
        alert (e.getTime() - BT);
      }
    </script>
  </head>
  <body onload="Oke()" >
    <div>
      <%
      for x = 1 to 20000 step 1
        response.write "<div style='width:80px;'>Hallo</div><div style='width:80px;'>Hallo</div><div style='width:80px'>Hallo</div><div style='width:80px'>Hallo</div><div style='width:80px'>Hallo</div><div style='width:80px'>Hallo</div><div style='width:80px'>Hallo</div><div style='width:80px'>Hallo</div><div style='width:80px'>Hallo</div><div style='width:80px'>Hallo</div><br>"
      next
      %>
    </div>
  </body>
</html>

Deze file draaien en dan de output saven als een htm file. Dit is trouwens de asp die een <div> tabel maakte, die kun je zo weer omzetten naar <table><tr><td>. :)

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

thanks! Altijd handig voor het archief :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.


Verwijderd

tnx man, dit is hele nuttige informatie!

Dit is er echt eentje voor het archief! Ik werk zelf over het algemeen niet met tabellen van meer dan 100 rows, maar wat niet is kan nog komen, dit houd ik in gedachten.

Misschien is er een (lite-)mod die zich geroepen voelt de threadnaam te editten (paar belangrijke trefwoorden toevoegen) zodat users deze thread makkelijker met de search kunnen vinden? Dit zijn van die vragen die nog vaak terug zullen keren

Ik had trouwens niet verwacht dat er zo ontzettend veel tijdverschil tussen zou zitten, dit is een factor 3!

[ Voor 0% gewijzigd door Verwijderd op 06-09-2002 22:54 . Reden: typo ]


  • André
  • Registratie: Maart 2002
  • Laatst online: 13:54

André

Analytics dude

Topicstarter
Kick ^^^

Andere goeroe's nog reactie op deze verbluffende testresultaten.

  • [eNeRGy]
  • Registratie: November 1999
  • Laatst online: 24-04-2025
Probeer eens dezelfde test maar dan met de DOM zou ik zeggen.

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

[eNeRGy] schreef op 09 september 2002 @ 08:59:
Probeer eens dezelfde test maar dan met de DOM zou ik zeggen.
Het gaat niet om de snelheid van het aanmaken van de elementen, maar om de snelheid waarmee de browser de inhoud rendert.
Vaag trouwens dat IE6 weigert de div's inline weer te geven op het moment dat ik de width in de kop zet in plaats van inline...

Intentionally left blank


  • 2
  • Registratie: November 2000
  • Laatst online: 31-03 13:52

2

Ik begrijp het niet. Waarom zou je in godsnaam zulke belachelijk grote tabellen willen gebruiken? Ik zou daar sowieso al een andere oplossing voor zoeken.

  • André
  • Registratie: Maart 2002
  • Laatst online: 13:54

André

Analytics dude

Topicstarter
2 schreef op 09 september 2002 @ 10:00:
Ik begrijp het niet. Waarom zou je in godsnaam zulke belachelijk grote tabellen willen gebruiken? Ik zou daar sowieso al een andere oplossing voor zoeken.
Die belachelijk groote tabellen zijn alleen om mee te testen zodat de resultaten duidelijker zijn.

Want als je met een tabel van 1x1 test, is er niet zo veel verschil he... 8)7

Verwijderd

2 schreef op 09 september 2002 @ 10:00:
Ik begrijp het niet. Waarom zou je in godsnaam zulke belachelijk grote tabellen willen gebruiken? Ik zou daar sowieso al een andere oplossing voor zoeken.
Kijk dan zeg je gewoon: "Wat een gelul! Yogho zeker!" ;)

Verwijderd

crisp schreef op 09 september 2002 @ 09:04:
[...]
Vaag trouwens dat IE6 weigert de div's inline weer te geven op het moment dat ik de width in de kop zet in plaats van inline...
Dat is niet vaag, dat is CSS. Mozilla gaat het ook niet goed doen. Dat komt, omdat ze bij w3c hebben bepaald dat een inline-element geen breedte kent.

Ik vind het overigens best wel irritant dat dat zo is :'(

  • [eNeRGy]
  • Registratie: November 1999
  • Laatst online: 24-04-2025
crisp schreef op 09 september 2002 @ 09:04:
[...]

Het gaat niet om de snelheid van het aanmaken van de elementen, maar om de snelheid waarmee de browser de inhoud rendert.
Vaag trouwens dat IE6 weigert de div's inline weer te geven op het moment dat ik de width in de kop zet in plaats van inline...
Er is wel degelijk een verschil, als je namelijk een grote tabel in je source hebt duurt het langer voordat je browser gaat tekenen, oudere browsers wachten zelfs tot het einde van de tabel, met DOM kan je regel voor regel inserten, dus staat het resultaat al eerder op je scherm.
Verwijderd schreef op 09 september 2002 @ 13:10:
[...]

Dat is niet vaag, dat is CSS. Mozilla gaat het ook niet goed doen. Dat komt, omdat ze bij w3c hebben bepaald dat een inline-element geen breedte kent.

Ik vind het overigens best wel irritant dat dat zo is :'(
Daar zijn de inline-tables voor gekomen denk ik?

  • André
  • Registratie: Maart 2002
  • Laatst online: 13:54

André

Analytics dude

Topicstarter
[eNeRGy] schreef op 09 september 2002 @ 13:19:
Er is wel degelijk een verschil, als je namelijk een grote tabel in je source hebt duurt het langer voordat je browser gaat tekenen, oudere browsers wachten zelfs tot het einde van de tabel, met DOM kan je regel voor regel inserten, dus staat het resultaat al eerder op je scherm.
Ja maar als een gedeelte van een tabel al op het scherm staat en in een bepaalde cel komt heel veel content te staan moet hij de hele kolom van breedte veranderen. En als je dus een hele lange tabel hebt zie je iedere keer diverse kolommen van breedte veranderen totdat de tabel klaar is. En daar gaat meer tijd inzitten dan als hij van te voren precies weet hoe breed alle kolommen moeten zijn en dat in 1 keer op het scherm pleurt. :7

  • 2
  • Registratie: November 2000
  • Laatst online: 31-03 13:52

2

Yogho schreef op 09 september 2002 @ 10:44:
[...]

Die belachelijk groote tabellen zijn alleen om mee te testen zodat de resultaten duidelijker zijn.

Want als je met een tabel van 1x1 test, is er niet zo veel verschil he... 8)7
duh?

Ik had het over de 500 rijen en 10 kolommen waar de Topicstarter mee kwam.

(zoals de waard is ..?)

  • [eNeRGy]
  • Registratie: November 1999
  • Laatst online: 24-04-2025
2 schreef op 09 september 2002 @ 15:40:
[...]


duh?

Ik had het over de 500 rijen en 10 kolommen waar de Topicstarter mee kwam.

(zoals de waard is ..?)
Mwah, ik heb iets gebouwd dat overweg moet kunnen met 60000 regels, alleen wordt het highlighten van en <tr> in IE gigatraag, Mozzie blijft wel heel snel.

  • André
  • Registratie: Maart 2002
  • Laatst online: 13:54

André

Analytics dude

Topicstarter
2 schreef op 09 september 2002 @ 15:40:
[...]


duh?

Ik had het over de 500 rijen en 10 kolommen waar de Topicstarter mee kwam.

(zoals de waard is ..?)
Dat begrijp ik ook wel, temeer omdat ik ook de topicstarter ben. ;)

[ Voor 0% gewijzigd door André op 09-09-2002 16:21 . Reden: typo ]

Pagina: 1