Temps de réponse IE et FireFox

Résolu
Signaler
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
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

Messages postés
289
Date d'inscription
vendredi 11 mars 2005
Statut
Membre
Dernière intervention
3 avril 2008
4
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
Messages postés
868
Date d'inscription
dimanche 26 décembre 2004
Statut
Membre
Dernière intervention
26 février 2008
1
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


@++
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
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]~