Test de la vitesse de javascript
Dans le cadre d'un petit développement amateur, on se posait la question de savoir si le javascript serait assez rapide pour modifier des centaines d'éléments de la page sans marquer de gros lag ou de temps d’arrêt.
Le test est le suivant:
Il y a 1000 lignes dans ce genre;
<article id="1"> <span name="ligne">1</span> <span name="code">DZPDSnELpc4LyGf</span> </article> <article id="2"> <span name="ligne">2</span> <span name="code">Y8N6RhiKesWH7pd</span> </article>
(etc...)
Il doit incrémenter toutes les valeurs. A chaque ligne <article> le second span est une chaine aléatoire, juste pour alourdir la page et se rapprocher du code html du développement en cours, mais c'est sans intérêt en fait..
Je vous mets le script de test là http://blog-du-grouik.tinad.fr/public/script/test.php Cliquez sur "Tout décaler" pour le lancer.
Voici la source du fichier.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="fr"> <head> <title>Test</title> <style type="text/css" media="screen"> article {display:block; } a {cursor: pointer;} </style> <script type="text/javascript"> function decaletout() { eltr=document.getElementById("doc").firstChild; do { if (eltr.nodeName == 'ARTICLE') { eltr.id= parseInt(eltr.id) + 1; eltspan=eltr.firstChild; while (eltspan.nodeName != 'SPAN') { eltspan=eltspan.nextSibling;} //alert(eltspan.innerHTML); eltspan.innerHTML = parseInt(eltspan.innerHTML) + 1; } eltr=eltr.nextSibling; }while(eltr!=null); } </script> </head> <body> <p><a onclick="decaletout();">Tout decaler</a></p> <div id="doc"> <?php function generateHashtag($c) { //les caracteres utilises: $b=array('0', '1', '2', '3', '4', '5', '6', '7', '8','9', 'a', 'b', 'c','d', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u','v','w','x','y','z', 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'); $randomfilename=""; for ($i=0; $i<$c; $i++){ } return $randomfilename; } for($i=1;$i<1000; $i++) { echo " <article id=\"".$i."\"> <span name=\"ligne\">".$i."</span> <span name=\"code\">".generateHashtag(15)."</span> </article>\n"; } ?> </div> </body> </html>
Le résultat est sans appel, c'est super rapide. Donc pour le petit développement amateur, on ne renverra pas le contenu de la page en php suite au décalage de lignes :D.
Si ça c'est pas un truc de geek, programmer quelque chose juste pour un test!?