10. februar 2005 - 09:06
Der er
19 kommentarer og 1 løsning
optimere IE's rendering af html
Hejsa Sidder med en table som indeholder ca 1000 tr og 6500 td'ere . IE er in krig ( ca 7-8 sekunder) om at rendere siden, mens firefox bare flyver derudaf. Siden SKAL køre i IE, er der nogen som har en ide til hvordan jeg kan få IE til at rendere siden hurtigere ?
Annonceindlæg fra Bluecircle
10. februar 2005 - 09:06
#1
er in krig = er en krig
10. februar 2005 - 09:12
#2
DOCTYPE og CSS, og genneralt så en bedre sidestruktur, da jeg tvivler på 1000 tr's nogen sinde kan være ordenlig kodning. Et link til siden, så vi kunne bedømme kodemæssige fejl ville også hjælpe en del.
10. februar 2005 - 09:16
#3
Siden ligger på et internt intranet, så jeg kan ikke poste et link til den. At 1000 tr ikke er ordenlig kodning, synes jeg er en lidt underlig kommentar ? Der skal vises 1000 poster fra en db på 1 side, så hvis du har nogen andre forslag er du da velkommen. Doctype er sat til <!doctype html public "-//w3c//dtd html 4.01 transitional//en"> og siden validerer uden fejl på w3.org's validator.
10. februar 2005 - 09:19
#4
hvis det er database udtræk kan det måske godt være godt nok, men normalt lyder det af nestede tables, hvilket er skidt.
Dit doctype er forkert, da IE stadig går i Quirks mode (M$ mode) når der ikke er DTD med , du bør bruge:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"
http://www.w3.org/TR/html4/loose.dtd">
10. februar 2005 - 09:34
#5
Er IE hurtigere til at rendere f.eks XHTML ? Er der andre doctypes som giver hurtigere rendering ?
10. februar 2005 - 09:41
#6
nej, IE fortolker desværre ikke xhtml/XML korrekt, ellers ville det være meget hurtigere at bruge stict korrekt xhtml, (og der skulle også korrekt header med, som f.eks. skulle laves i php, og en del andre ting)
10. februar 2005 - 10:25
#7
Kunne det evnt være en fordel at bruge paging her ? Da 1000 poster er meget i et doc, og oversigten ville være nemmere at overskue //cdc
10. februar 2005 - 10:27
#8
Ja, paging ville være rigtigt smart. Men desværre er det et krav at alt skal være på en side. Man kan jo sige at de så selv har bedt om det :-)
10. februar 2005 - 14:23
#9
<ole> Nej, det kan man kun sige, hvis deres koder _meget_ tydeligt har forklaret dem, at det er en rigtig dårlig løsning, som de aldrig vil blive tilfreds med. Har han ikke det, har de ingen skyld i en dårlig løsning. Et uimodsagt 'krav' fra kundens side er ikke et krav fra kundens side ... må i hvert fald ikke betragtes som sådan :) Uden nogen somhelst idé om kodens udseende er det komplet umuligt - og helt uden mening - at forsøge at give anvisninger på, hvordan det kan gøres bedre. Bedre end hvad? /mvh </bole>
10. februar 2005 - 14:55
#10
Der er slf blevet argumenteret for paging, det er det også endt med nu. Men sådan generelt: hvilken doctype renderer IE hurtigst ? er det noget i har testet på og/eller har viden om ?
10. februar 2005 - 16:06
#11
I øjeblikket er det HTML4.01-Strict - men du kunne sikkert optimere din kode og opnå langt større gevindster
10. februar 2005 - 16:31
#12
Jer som vil have point: smid et svar
10. februar 2005 - 16:34
#13
Hvorfor ikke prøve at smide noget af tabelkoden? Du kan jo bare skrive noget dummy-indhold :)
10. februar 2005 - 16:42
#14
den ser således ud : <table border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="50" style="background-color:#606060;" height="22"><img src="img/9x9.gif" width="50" height="1" alt=""><br><span class="overskrift"> Ordre# </span></td> <td style="background-color:#606060;"><img src="img/9x9.gif" width="161" height="1" alt=""><br><span class="overskrift">Kunde</span></td> <td style="background-color:#606060;" colspan="3" width="148"><img src="img/9x9.gif" width="148" height="1" alt=""><br><span class="overskrift"> Prepress/dtp</span></td> <td style="background-color:#606060;" colspan="3" width="150"><img src="img/9x9.gif" width="148" height="1" alt=""><br><span class="overskrift"> Repro</span></td> <td style="background-color:#606060;" colspan="3" width="163"><img src="img/9x9.gif" width="168" height="1" alt=""><br><span class="overskrift"> Trykning</span></td> <td style="background-color:#606060;" colspan="3" width="133"><img src="img/9x9.gif" width="128" height="1" alt=""><br><span class="overskrift"> Efterbehandling</span></td> <td style="background-color:#606060;" colspan="3" width="148"><img src="img/9x9.gif" width="148" height="1" alt=""><br><span class="overskrift"> Levering</span></td> </tr> <tr> <td width="50"><img src="img/9x9.gif" width="1" height="1" alt=""></td> <td width="170"><img src="img/9x9.gif" width="1" height="1" alt=""></td> <td width="103"><img src="img/9x9.gif" width="1" height="1" alt=""></td> <td width="20"><img src="img/9x9.gif" width="1" height="1" alt=""></td> <td width="17"><img src="img/9x9.gif" width="1" height="1" alt=""></td> <td width="105"><img src="img/9x9.gif" width="1" height="1" alt=""></td> <td width="25"><img src="img/9x9.gif" width="1" height="1" alt=""></td> <td width="20"><img src="img/9x9.gif" width="1" height="1" alt=""></td> <td width="120"><img src="img/9x9.gif" width="1" height="1" alt=""></td> <td width="25"><img src="img/9x9.gif" width="1" height="1" alt=""></td> <td width="20"><img src="img/9x9.gif" width="1" height="1" alt=""></td> <td width="90"><img src="img/9x9.gif" width="1" height="1" alt=""></td> <td width="25"><img src="img/9x9.gif" width="1" height="1" alt=""></td> <td width="20"></td> <td width="105"><img src="img/9x9.gif" width="1" height="1" alt=""></td> <td width="25"><img src="img/9x9.gif" width="1" height="1" alt=""></td> <td width="20"><img src="img/9x9.gif" width="1" height="1" alt=""></td> </tr> <tr> <td align="left" class="lr" onMouseOver="s('id_3895')" onMouseOut="h('id_3895')"> 47785<br><div class="d" style="width:40px;" id="id_3895"> <a href="oversigt.asp?mode=afslut&id=3895">Afslut</a></div></td> <td class="lr" onMouseOver="s('id_3895')" onMouseOut="h('id_3895')"><a href="java script:k(3895);"><img src="img/k.gif" width="12" height="11" alt="" align="right" class="k"></a>HARLEY-DAV<br><span class="lilletekst">M5 konvolut med rude</span><br><img src="img/9x9.gif" width="1" height="2" alt=""></td> <td align="left" valign="top" class="lrb" onmouseover="s1(this,1,0,3895)" onmouseout="h1(this,0)"> Prepress/DTP igang<br><div class="d"> </div></td> <td align="left" valign="top" class="lm" onmouseover="s1(this,1,1,3895)" onmouseout="h1(this,1)"> ebm</td> <td align="left" valign="top" class="lm" onmouseover="s1(this,1,2,3895)" onmouseout="h1(this,2)"><img src="img/status-gul.gif" style="margin-top:4px" alt=""></td> <td align="left" valign="top" class="lrb" onmouseover="s2(this,1,0,3895)" onmouseout="h1(this,0)"> Igangsat<br><div class="d"> </div></td> <td align="left" valign="top" class="lm" onmouseover="s2(this,1,1,3895)" onmouseout="h1(this,1)"> </td> <td align="left" valign="top" class="lm" onmouseover="s2(this,1,2,3895)" onmouseout="h1(this,2)"><img src="img/status-gul.gif" style="margin-top:4px" alt=""></td> <td align="left" valign="top" class="lrb" onmouseover="s3(this,1,0,3895)" onmouseout="h1(this,0)"> Igangsat<br><div class="d"> </div></td> <td align="left" valign="top" class="lm" onmouseover="s3(this,1,1,3895)" onmouseout="h1(this,1)"> ebm</td> <td align="left" valign="top" class="lm" onmouseover="s3(this,1,2,3895)" onmouseout="h1(this,2)"><img src="img/status-gul.gif" style="margin-top:4px" alt=""></td> <td align="left" valign="top" class="lrb" onmouseover="s4(this,1,0,3895)" onmouseout="h1(this,0)"> Igangsat<br><div class="d"> </div></td> <td align="left" valign="top" class="lm" onmouseover="s4(this,1,1,3895)" onmouseout="h1(this,1)"> ebm</td> <td align="left" valign="top" class="lm" onmouseover="s4(this,1,2,3895)" onmouseout="h1(this,2)"><img src="img/status-gul.gif" style="margin-top:4px" alt=""></td> <td align="left" valign="top" class="lrb" onmouseover="s5(this,1,0,3895)" onmouseout="h1(this,0)"> Igangsat<br><div class="d"> </div></td> <td align="left" valign="top" class="lm" onmouseover="s5(this,1,1,3895)" onmouseout="h1(this,1)"> ebm</td> <td align="left" valign="top" class="lm" onmouseover="s5(this,1,2,3895)" onmouseout="h1(this,2)"><img src="img/status-gul.gif" style="margin-top:4px" alt=""></td> </tr> <tr> <td align="left" class="mr" onMouseOver="s('id_4649')" onMouseOut="h('id_4649')"> 47784<br><div class="d" style="width:40px;" id="id_4649"> <a href="oversigt.asp?mode=afslut&id=4649">Afslut</a></div></td> <td class="mr" onMouseOver="s('id_4649')" onMouseOut="h('id_4649')"><a href="java script:k(4649);"><img src="img/k.gif" width="12" height="11" alt="" align="right" class="k"></a>ÆLDRE SLAN<br><span class="lilletekst">Div. tryksager</span><br><img src="img/9x9.gif" width="1" height="2" alt=""></td> <td align="left" valign="top" class="mrb" onmouseover="s1(this,1,0,4649)" onmouseout="h1(this,0)"> Afventer manus<br><div class="d"> </div></td> <td align="left" valign="top" class="mm" onmouseover="s1(this,1,1,4649)" onmouseout="h1(this,1)"> </td> <td align="left" valign="top" class="mm" onmouseover="s1(this,1,2,4649)" onmouseout="h1(this,2)"><img src="img/status-roed.gif" style="margin-top:4px" alt=""></td> <td align="left" valign="top" class="mrb" onmouseover="s2(this,1,0,4649)" onmouseout="h1(this,0)"> Afventer file<br><div class="d"> </div></td> <td align="left" valign="top" class="mm" onmouseover="s2(this,1,1,4649)" onmouseout="h1(this,1)"> </td> <td align="left" valign="top" class="mm" onmouseover="s2(this,1,2,4649)" onmouseout="h1(this,2)"><img src="img/status-roed.gif" style="margin-top:4px" alt=""></td> <td align="left" valign="top" class="mrb" onmouseover="s3(this,1,0,4649)" onmouseout="h1(this,0)"> Afventer plader<br><div class="d"> </div></td> <td align="left" valign="top" class="mm" onmouseover="s3(this,1,1,4649)" onmouseout="h1(this,1)"> </td> <td align="left" valign="top" class="mm" onmouseover="s3(this,1,2,4649)" onmouseout="h1(this,2)"><img src="img/status-roed.gif" style="margin-top:4px" alt=""></td> <td align="left" valign="top" class="mrb" onmouseover="s4(this,1,0,4649)" onmouseout="h1(this,0)"> Afventer trykark<br><div class="d"> </div></td> <td align="left" valign="top" class="mm" onmouseover="s4(this,1,1,4649)" onmouseout="h1(this,1)"> </td> <td align="left" valign="top" class="mm" onmouseover="s4(this,1,2,4649)" onmouseout="h1(this,2)"><img src="img/status-roed.gif" style="margin-top:4px" alt=""></td> <td align="left" valign="top" class="mrb" onmouseover="s5(this,1,0,4649)" onmouseout="h1(this,0)"> Afventer opgave<br><div class="d"> </div></td> <td align="left" valign="top" class="mm" onmouseover="s5(this,1,1,4649)" onmouseout="h1(this,1)"> </td> <td align="left" valign="top" class="mm" onmouseover="s5(this,1,2,4649)" onmouseout="h1(this,2)"><img src="img/status-roed.gif" style="margin-top:4px" alt=""></td> </tr> <!--osv.osv.osv.osv.osv.--> </table>
10. februar 2005 - 16:43
#15
ved mouse over smider et javascript noget kode ind id <dvi>'en , derfor mouseover eventsne
10. februar 2005 - 16:45
#16
Jeg har lige lavet dokument med en tabel på 1000 rækker med hver 6 celler. Det loader i IE6.0/XP på under 1 sekund fra min lokale HD. Detil skal naturligvis lægges tiden for at få de godt 160k ned gennem hullet - men den er jo ens for IE og Moz :) Der kan gøres enormt meget for at slanke din kode. Jeg giver den lige en tur gennem vridemaskinen og kommer tilbage
10. februar 2005 - 17:36
#17
Til en begyndelse kunne det være noget à la: <style type="text/css"> .tbl { text-align: left; vertical-align: top; margin: 0px auto; } .tblSpacerRow td { font-size: 0px; line-height: 0px: } .tblHeader { background-color: #606060; } .tblHeader td { /* Det samme som din nuværende klasse 'overskrift' ... plus: */ padding: 0px 3px; } </style> <div style="text-align:center"> <table class="tbl" border="0" cellpadding="0" cellspacing="0"> <tr class="tblHeader"> <td width="50" height="22">Ordre#</td> <td>Kunde</td> <td colspan="3" width="148">Prepress/dtp</td> <td colspan="3" width="150">Repro</td> <td colspan="3" width="163">Trykning</td> <td colspan="3" width="133">Efterbehandling</td> <td colspan="3" width="148">Levering</td> </tr> <tr class="tblSpacerRow"> <td width="50"> </td> <td width="170"> </td> <td width="103"> </td> <td width="20"> </td> <td width="17"> </td> <td width="105"> </td> <td width="25"> </td> <td width="20"> </td> <td width="120"> </td> <td width="25"> </td> <td width="20"> </td> <td width="90"> </td> <td width="25"> </td> <td width="20"> </td> <td width="105"> </td> <td width="25"> </td> <td width="20"> </td> </tr> <tr> <td class="lr" onMouseOver="s('id_3895')" onMouseOut="h('id_3895')"> 47785<br><div class="d" style="width:40px;" id="id_3895"> <a href="oversigt.asp?mode=afslut&id=3895">Afslut</a></div></td> <td class="lr" onMouseOver="s('id_3895')" onMouseOut="h('id_3895')"><a href="java script:k(3895);"><img src="img/k.gif" width="12" height="11" alt="" align="right" class="k"></a>HARLEY-DAV<br><span class="lilletekst">M5 konvolut med rude</span><br><img src="img/9x9.gif" width="1" height="2" alt=""></td> <td class="lrb" onmouseover="s1(this,1,0,3895)" onmouseout="h1(this,0)"> Prepress/DTP igang<br><div class="d"> </div></td> <td class="lm" onmouseover="s1(this,1,1,3895)" onmouseout="h1(this,1)"> ebm</td> <td class="lm" onmouseover="s1(this,1,2,3895)" onmouseout="h1(this,2)"><img src="img/status-gul.gif" style="margin-top:4px" alt=""></td> <td class="lrb" onmouseover="s2(this,1,0,3895)" onmouseout="h1(this,0)"> Igangsat<br><div class="d"> </div></td> <td class="lm" onmouseover="s2(this,1,1,3895)" onmouseout="h1(this,1)"> </td> <td class="lm" onmouseover="s2(this,1,2,3895)" onmouseout="h1(this,2)"><img src="img/status-gul.gif" style="margin-top:4px" alt=""></td> <td class="lrb" onmouseover="s3(this,1,0,3895)" onmouseout="h1(this,0)"> Igangsat<br><div class="d"> </div></td> <td class="lm" onmouseover="s3(this,1,1,3895)" onmouseout="h1(this,1)"> ebm</td> <td class="lm" onmouseover="s3(this,1,2,3895)" onmouseout="h1(this,2)"><img src="img/status-gul.gif" style="margin-top:4px" alt=""></td> <td class="lrb" onmouseover="s4(this,1,0,3895)" onmouseout="h1(this,0)"> Igangsat<br><div class="d"> </div></td> <td class="lm" onmouseover="s4(this,1,1,3895)" onmouseout="h1(this,1)"> ebm</td> <td class="lm" onmouseover="s4(this,1,2,3895)" onmouseout="h1(this,2)"><img src="img/status-gul.gif" style="margin-top:4px" alt=""></td> <td class="lrb" onmouseover="s5(this,1,0,3895)" onmouseout="h1(this,0)"> Igangsat<br><div class="d"> </div></td> <td class="lm" onmouseover="s5(this,1,1,3895)" onmouseout="h1(this,1)"> ebm</td> <td class="lm" onmouseover="s5(this,1,2,3895)" onmouseout="h1(this,2)"><img src="img/status-gul.gif" style="margin-top:4px" alt=""></td> </tr> <tr> <td class="mr" onMouseOver="s('id_4649')" onMouseOut="h('id_4649')"> 47784<br><div class="d" style="width:40px;" id="id_4649"> <a href="oversigt.asp?mode=afslut&id=4649">Afslut</a></div></td> <td class="mr" onMouseOver="s('id_4649')" onMouseOut="h('id_4649')"><a href="java script:k(4649);"><img src="img/k.gif" width="12" height="11" alt="" align="right" class="k"></a>ÆLDRE SLAN<br><span class="lilletekst">Div. tryksager</span><br><img src="img/9x9.gif" width="1" height="2" alt=""></td> <td class="mrb" onmouseover="s1(this,1,0,4649)" onmouseout="h1(this,0)"> Afventer manus<br><div class="d"> </div></td> <td class="mm" onmouseover="s1(this,1,1,4649)" onmouseout="h1(this,1)"> </td> <td class="mm" onmouseover="s1(this,1,2,4649)" onmouseout="h1(this,2)"><img src="img/status-roed.gif" style="margin-top:4px" alt=""></td> <td class="mrb" onmouseover="s2(this,1,0,4649)" onmouseout="h1(this,0)"> Afventer file<br><div class="d"> </div></td> <td class="mm" onmouseover="s2(this,1,1,4649)" onmouseout="h1(this,1)"> </td> <td class="mm" onmouseover="s2(this,1,2,4649)" onmouseout="h1(this,2)"><img src="img/status-roed.gif" style="margin-top:4px" alt=""></td> <td class="mrb" onmouseover="s3(this,1,0,4649)" onmouseout="h1(this,0)"> Afventer plader<br><div class="d"> </div></td> <td class="mm" onmouseover="s3(this,1,1,4649)" onmouseout="h1(this,1)"> </td> <td class="mm" onmouseover="s3(this,1,2,4649)" onmouseout="h1(this,2)"><img src="img/status-roed.gif" style="margin-top:4px" alt=""></td> <td class="mrb" onmouseover="s4(this,1,0,4649)" onmouseout="h1(this,0)"> Afventer trykark<br><div class="d"> </div></td> <td class="mm" onmouseover="s4(this,1,1,4649)" onmouseout="h1(this,1)"> </td> <td class="mm" onmouseover="s4(this,1,2,4649)" onmouseout="h1(this,2)"><img src="img/status-roed.gif" style="margin-top:4px" alt=""></td> <td class="mrb" onmouseover="s5(this,1,0,4649)" onmouseout="h1(this,0)"> Afventer opgave<br><div class="d"> </div></td> <td class="mm" onmouseover="s5(this,1,1,4649)" onmouseout="h1(this,1)"> </td> <td class="mm" onmouseover="s5(this,1,2,4649)" onmouseout="h1(this,2)"><img src="img/status-roed.gif" style="margin-top:4px" alt=""></td> </tr> <!--osv.osv.osv.osv.osv.--> </table> --------------------------------- Derudover bør der stadig gøres en hel bunke. De sidste 9x9.gif'er (et filnavn skal i øvrigt altid begynde med et bogstav) bør helt klar udryddes. For hvert eneste billede på siden foretager browseren et kald til serveren (også selvom det er cached)! style="margin-top:4px" bør sættes i CSS. Evt. som: TABEL_RÆKKE_KLASSE td img { margin-top: 4px; } Så behøver du kun sætte en klasse på rækken. Derudover er det noget rod med alle de klasser på cellerne. Det må kunne gøres mere elegant. Din brug af divs og spans kan sikkert også begrænses yderligere og alle dine bør slettes og erstattes af noget padding/margin. Derudover ville jeg nok forssøge at sætte så mange event-handlers som muligt via JavaScript - i stedet for at skrive dem ind i koden. Dine links, der ligger på dine k.gif'er bør også erstattes af nogle onclick-handlers på billederne. Til aller sidst bør hele koden køres op på én lang linie - hvilket er let nok, hvis den køres ud fra en DB. Det aller vigtigste er, at du er god til CSS. Så kan du skrive en god og kompakt kode. Ellers bliver det uvilkårligt noget skidt.
10. februar 2005 - 19:47
#18
Tusind tak for inputtet. Kigger på det imorgen tidlig. mvh
16. februar 2005 - 09:43
#19
Hjalp gevaldigt. Smid et svar :-)
16. februar 2005 - 18:20
#20
*griiiiiib* :)
Vi tilbyder markedets bedste kurser inden for webudvikling