Temps de réponse IE et FireFox

Résolu
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 1 août 2005 à 12:12
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 2 août 2005 à 09:29
Bonjour,
pour une question de performances,
j'ai simplifié au maximum (?) le script que
j'ai mis dans les sources de ce site
( tri multi-colonnes d'un tableau HTML ),
il doit être compatible Internet Explorer
et FireFox, ça marche mais, pour trier
~2000 lignes : 18' avec IE, 55' avec FF
je commet une connerie où ?

<html>
<head>
<style type="text/css">
table,td { border:1px solid #000000;
font-weight:bold; }
</style>
<title>Tri simplifié d'un tableau html</title>


<script type="text/javascript">

function trier(tableau,Zone)
{
var ligfin=tableau.rows.length; // nbr lignes
var buffer=Array(ligfin); // buffer[nbr lignes]
var c,l;

var dj=new Date();
window.status=">> Début "+dj.getHours()+
":"+dj.getMinutes()+
":"+dj.getSeconds()+" >>";

/* table => array */
for ( l=0; l<ligfin; l++ )
{ buffer[l]=new Array();
buffer[l][0]+=tableau.rows[l].cells[Zone].innerHTML;
for ( c=0;c<3;c++ )
{ buffer[l][c+1]=
tableau.rows[l].cells[c].innerHTML; } }

/* tri */
buffer.sort();

/* array => table */
for ( l=0;l<ligfin;l++ )
{ for ( c=0;c<3;c++)
{ tableau.rows[l].cells[c].innerHTML=
buffer[l][c+1]; } }


var dj=new Date();
window.status+=" << Fin "+dj.getHours()+
":"+dj.getMinutes()+
":"+dj.getSeconds()+" <<"; }


</script>
</head>




Trier



----
55, alain, 23/01/2005,
----
1, daniel, 03/03/2001,
----
3, etienne, 01/01/2005,
----
4444, bernard, 23/11/2004,
----
22, claude, 08/09/1999,
----
1, fernand, 17/02/2000,
----
1, etienne, 03/03/2001,
----
4444, etienne, 23/01/2000,

<script type=\"text/javascript\">

/* Initialisation :
Créer 2000 Lignes aléatoires */

var tmp=\"abcdefghijklmnopqrstuvwxyz\"+
\"ABCDEFGHIJKLMNOPQRSTUVWXYZ\"+
\"0123456789\";
var alea,t=\"\";

for ( var n=0;n<2000;n++)
{ alea=Math.floor(Math.random()*tmp.length);
window.status=n+\" ~ \"+alea;
t+=\"----
"+tmp.charAt(alea)+"-0, \"+
\""+tmp.charAt(alea)+"-1, \"+
\""+tmp.charAt(alea)+"-2, \"; }
document.writeln(t);
document.getElementById(\"tri\").style.display=\"inline\";

</script>


</html>

merci d'avance
toutes les suggestions pour un
meilleur temps de réponse ( IE,FF )
sont les bienvenues.
Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~

3 réponses

GhislainLavoie Messages postés 289 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 3 avril 2008 4
1 août 2005 à 19:07
Salut!

Je ne crois pas qu'on y peux grand chose car 2000 lignes soit 6000 objets a lire et modifier, il n'y a pas de miracle en DHTML. Surtout avec NN et FF qui ne performent pas avec boucoup de volume lord de manipulation en DHTML.

J'ai fait un test qui prend 9' avec EI et 40' avec FF. La solution proposé c'est de lire et écrire le node text dans la cellule au lieu du contenu de la cellule en entier. Puisqu'il n'y a pas de raison valable qu'il y est du html dans les données (utilisation CSS), ça me semble une modification valable.


<script type= "text/javascript">

d=0;
function trier(tableau,Zone)
{

var ligfin =tableau.rows.length; // nbr lignes
var buffer= new Array(ligfin); // buffer[nbr lignes]
var c,l;

var dj=new Date();
window.status=">> Début "+dj.getHours()+
":"+dj.getMinutes()+
":"+dj.getSeconds()+" >>";

/* table => array */
for ( l=0; l<ligfin; l++ )
{
buffer[l] =new Array();
buffer[l][0]+= tableau.rows[l].cells[Zone].firstChild.nodeValue;
for ( c=0;c<3;c++ )
{
buffer[l][c+1] =
tableau.rows[l].cells[c].firstChild.nodeValue; }
}

/* tri */
buffer.sort();

/* array = > table */
for ( l=0;l<ligfin;l++ )
{
for ( c =0;c<3;c++)
{
tableau.rows[l].cells[c].firstChild.nodeValue=
buffer[l][c+1]; }
}


var df =new Date();
alert(">> Début" + dj.getHours()+
":"+dj.getMinutes()+
":"+dj.getSeconds()+" >>"+ " << Fin "+df.getHours()+
":"+df.getMinutes()+
":"+df.getSeconds()+" <<"); }

</script>

A+, Ghislain
3
cs_algori Messages postés 868 Date d'inscription dimanche 26 décembre 2004 Statut Membre Dernière intervention 26 février 2008 1
1 août 2005 à 22:56
Bon, on a beau dire que IE est une bouze, mais faut quand même reconnaitre qu'il est rapide.


LLOOLL !

PS : je n'entrerai pas dans des débats stériles entre Firefox et co VS IE


@++
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
2 août 2005 à 09:29
résultats après test, sur mon vieux machin,
11' avec IE, au lieu des 18, pas mal du tout.
Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
0