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>
<body>
<button name="tri"
id="tri"
style="display:none"
onclick="trier(atrier,1);">Trier</button><br/>
<table name="atrier"
id="atrier">
<tr><td>55</td> <td>alain</td> <td>23/01/2005</td></tr>
<tr><td>1</td> <td>daniel</td> <td>03/03/2001</td></tr>
<tr><td>3</td> <td>etienne</td><td>01/01/2005</td></tr>
<tr><td>4444</td><td>bernard</td><td>23/11/2004</td></tr>
<tr><td>22</td> <td>claude</td> <td>08/09/1999</td></tr>
<tr><td>1</td> <td>fernand</td><td>17/02/2000</td></tr>
<tr><td>1</td> <td>etienne</td><td>03/03/2001</td></tr>
<tr><td>4444</td><td>etienne</td><td>23/01/2000</td></tr>
<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+="<tr><td>"+tmp.charAt(alea)+"-0</td>"+
"<td>"+tmp.charAt(alea)+"-1</td>"+
"<td>"+tmp.charAt(alea)+"-2</td></tr>"; }
document.writeln(t);
document.getElementById("tri").style.display="inline";
</script>
</table>
</body></html>
merci d'avance
toutes les suggestions pour un
meilleur temps de réponse ( IE,FF )
sont les bienvenues.
Cordialement. Bul. ~Site~~Mail~