Avatar billede -mundi- Nybegynder
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 ?
Avatar billede -mundi- Nybegynder
10. februar 2005 - 09:06 #1
er in krig  = er en krig
Avatar billede alister_crowley Nybegynder
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.
Avatar billede -mundi- Nybegynder
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.
Avatar billede alister_crowley Nybegynder
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">
Avatar billede -mundi- Nybegynder
10. februar 2005 - 09:34 #5
Er IE hurtigere til at rendere f.eks XHTML ? Er der andre doctypes som giver hurtigere rendering ?
Avatar billede alister_crowley Nybegynder
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)
Avatar billede cdc Novice
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
Avatar billede -mundi- Nybegynder
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 :-)
Avatar billede olebole Juniormester
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>
Avatar billede -mundi- Nybegynder
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 ?
Avatar billede olebole Juniormester
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
Avatar billede -mundi- Nybegynder
10. februar 2005 - 16:31 #12
Jer som vil have point: smid et svar
Avatar billede olebole Juniormester
10. februar 2005 - 16:34 #13
Hvorfor ikke prøve at smide noget af tabelkoden? Du kan jo bare skrive noget dummy-indhold  :)
Avatar billede -mundi- Nybegynder
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">&nbsp;Ordre#&nbsp;</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">&nbsp;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">&nbsp;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">&nbsp;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">&nbsp;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">&nbsp;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')">&nbsp;47785<br><div class="d" style="width:40px;" id="id_3895">&nbsp;<a href="oversigt.asp?mode=afslut&amp;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)">&nbsp;Prepress/DTP igang<br><div class="d">&nbsp;</div></td>
        <td align="left" valign="top" class="lm" onmouseover="s1(this,1,1,3895)" onmouseout="h1(this,1)">&nbsp;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)">&nbsp;Igangsat<br><div class="d">&nbsp;</div></td>
        <td align="left" valign="top" class="lm" onmouseover="s2(this,1,1,3895)" onmouseout="h1(this,1)">&nbsp;</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)">&nbsp;Igangsat<br><div class="d">&nbsp;</div></td>
        <td align="left" valign="top" class="lm" onmouseover="s3(this,1,1,3895)" onmouseout="h1(this,1)">&nbsp;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)">&nbsp;Igangsat<br><div class="d">&nbsp;</div></td>
        <td align="left" valign="top" class="lm" onmouseover="s4(this,1,1,3895)" onmouseout="h1(this,1)">&nbsp;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)">&nbsp;Igangsat<br><div class="d">&nbsp;</div></td>
        <td align="left" valign="top" class="lm" onmouseover="s5(this,1,1,3895)" onmouseout="h1(this,1)">&nbsp;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')">&nbsp;47784<br><div class="d" style="width:40px;" id="id_4649">&nbsp;<a href="oversigt.asp?mode=afslut&amp;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)">&nbsp;Afventer manus<br><div class="d">&nbsp;</div></td>
        <td align="left" valign="top" class="mm" onmouseover="s1(this,1,1,4649)" onmouseout="h1(this,1)">&nbsp;</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)">&nbsp;Afventer file<br><div class="d">&nbsp;</div></td>
        <td align="left" valign="top" class="mm" onmouseover="s2(this,1,1,4649)" onmouseout="h1(this,1)">&nbsp;</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)">&nbsp;Afventer plader<br><div class="d">&nbsp;</div></td>
        <td align="left" valign="top" class="mm" onmouseover="s3(this,1,1,4649)" onmouseout="h1(this,1)">&nbsp;</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)">&nbsp;Afventer trykark<br><div class="d">&nbsp;</div></td>
        <td align="left" valign="top" class="mm" onmouseover="s4(this,1,1,4649)" onmouseout="h1(this,1)">&nbsp;</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)">&nbsp;Afventer opgave<br><div class="d">&nbsp;</div></td>
        <td align="left" valign="top" class="mm" onmouseover="s5(this,1,1,4649)" onmouseout="h1(this,1)">&nbsp;</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>
Avatar billede -mundi- Nybegynder
10. februar 2005 - 16:43 #15
ved mouse over smider et javascript noget kode ind id <dvi>'en , derfor mouseover eventsne
Avatar billede olebole Juniormester
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
Avatar billede olebole Juniormester
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">&nbsp;</td>
        <td width="170">&nbsp;</td>
        <td width="103">&nbsp;</td>
        <td width="20">&nbsp;</td>
        <td width="17">&nbsp;</td>
       
        <td width="105">&nbsp;</td>
        <td width="25">&nbsp;</td>
        <td width="20">&nbsp;</td>
       
        <td width="120">&nbsp;</td>
        <td width="25">&nbsp;</td>
        <td width="20">&nbsp;</td>
       
        <td width="90">&nbsp;</td>
        <td width="25">&nbsp;</td>
        <td width="20">&nbsp;</td>
       
        <td width="105">&nbsp;</td>
        <td width="25">&nbsp;</td>
        <td width="20">&nbsp;</td>
      </tr>
   
      <tr>
        <td class="lr" onMouseOver="s('id_3895')" onMouseOut="h('id_3895')">&nbsp;47785<br><div class="d" style="width:40px;" id="id_3895">&nbsp;<a href="oversigt.asp?mode=afslut&amp;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)">&nbsp;Prepress/DTP igang<br><div class="d">&nbsp;</div></td>
        <td class="lm" onmouseover="s1(this,1,1,3895)" onmouseout="h1(this,1)">&nbsp;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)">&nbsp;Igangsat<br><div class="d">&nbsp;</div></td>
        <td class="lm" onmouseover="s2(this,1,1,3895)" onmouseout="h1(this,1)">&nbsp;</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)">&nbsp;Igangsat<br><div class="d">&nbsp;</div></td>
        <td class="lm" onmouseover="s3(this,1,1,3895)" onmouseout="h1(this,1)">&nbsp;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)">&nbsp;Igangsat<br><div class="d">&nbsp;</div></td>
        <td class="lm" onmouseover="s4(this,1,1,3895)" onmouseout="h1(this,1)">&nbsp;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)">&nbsp;Igangsat<br><div class="d">&nbsp;</div></td>
        <td class="lm" onmouseover="s5(this,1,1,3895)" onmouseout="h1(this,1)">&nbsp;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')">&nbsp;47784<br><div class="d" style="width:40px;" id="id_4649">&nbsp;<a href="oversigt.asp?mode=afslut&amp;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)">&nbsp;Afventer manus<br><div class="d">&nbsp;</div></td>
        <td class="mm" onmouseover="s1(this,1,1,4649)" onmouseout="h1(this,1)">&nbsp;</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)">&nbsp;Afventer file<br><div class="d">&nbsp;</div></td>
        <td class="mm" onmouseover="s2(this,1,1,4649)" onmouseout="h1(this,1)">&nbsp;</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)">&nbsp;Afventer plader<br><div class="d">&nbsp;</div></td>
        <td class="mm" onmouseover="s3(this,1,1,4649)" onmouseout="h1(this,1)">&nbsp;</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)">&nbsp;Afventer trykark<br><div class="d">&nbsp;</div></td>
        <td class="mm" onmouseover="s4(this,1,1,4649)" onmouseout="h1(this,1)">&nbsp;</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)">&nbsp;Afventer opgave<br><div class="d">&nbsp;</div></td>
        <td class="mm" onmouseover="s5(this,1,1,4649)" onmouseout="h1(this,1)">&nbsp;</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 &nbsp; 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.
Avatar billede -mundi- Nybegynder
10. februar 2005 - 19:47 #18
Tusind tak for inputtet. Kigger på det imorgen tidlig.
mvh
Avatar billede -mundi- Nybegynder
16. februar 2005 - 09:43 #19
Hjalp gevaldigt. Smid et svar :-)
Avatar billede olebole Juniormester
16. februar 2005 - 18:20 #20
*griiiiiib*  :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester