Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/11/2010, 12h31   #1
Membre éclairé
 
Avatar de Soulama
 
Développeur informatique
Inscription : mai 2004
Messages : 582
Détails du profil
Informations personnelles :
Localisation : Maroc

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2004
Messages : 582
Points : 344
Points : 344
Par défaut Un select Box avec plein de Options

bonjour,
j'ai un SelectBox que je remplie avec des users d'une base de donnees.
Le box contient 5000 entrées.
Donc dans mon HTML jai 3 select box chacun rempli de 5000 users, car je fais des recherches sur la base de données pour trois champs( Contact User, First Created By, Entry Created By ).
Sous Firefox et Chrome, j'ai pas de probleme de performance. mais sur IE6 ca prend vraiment du temps pour faire le rendering des selectBoxes.
J'ai demande au Boss de faire un autocomplete Widget au lieu du selectBox, il refuse pour des raisons de consistance du UI.
Si vous avec une idee comment optimiser ce probleme de performance sous IE6, je suis preneur.
Voila la methode que j'utilise pour dessiner les selectBoxes:
Code :
1
2
3
4
5
6
7
8
9
 
function createComboBox( list, targetId, selectorHead ){
    var comboBox = selectorHead;
    for( var i = 0; i < list.length ; i++ ) {
        comboBox += '<option value="' + list[i].index + '">' + list[i].optionText + '</option>\n';
    }
    comboBox += '</select>';
    $(targetId).html( comboBox );
};
__________________
Apprends la science de celui qui sait, et enseigne ta science à celui qui ignore, comme ca, tu auras appris ce que tu ignores et utilisé ce que tu sais.
Soulama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2010, 13h06   #2
Rédacteur
 
Avatar de Arnaud F.
 
Homme Arnaud Feltz
Développeur .NET
Inscription : août 2005
Messages : 5 204
Détails du profil
Informations personnelles :
Nom : Homme Arnaud Feltz
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Transports

Informations forums :
Inscription : août 2005
Messages : 5 204
Points : 6 113
Points : 6 113
Bonjour,

je vous suggère très fortement de lire ce billet de blog qui explique très bien ce que l'on peut se permettre et non avec jQuery et surtout avec les append :

(EN) http://www.learningjquery.com/2009/0...pend-correctly

Mais ce qu'il faut en retenir c'est que le temps d'exécution peut être divisé par 6 sur IE6 en utilisant la méthode suivante !

Code :
1
2
3
4
5
6
7
8
9
10
 
function createComboBox( list, targetId, selectorHead ){
    var comboBox = selectorHead,
        options = [], i;
 
    for(i = 0; i < list.length ; i++ ) {
        options[i++] = '<option value="' + list[i].index + '">' + list[i].optionText + '</option>\n';
    }
    $(targetId).append(options.join(''));
};
De plus, si targetId correspond à l'ID du select, il n'y a plus besoin de rajouter le </select> final.

++
__________________
C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

Installation de Code::Blocks sous Debian à partir de Nightly Builds
Arnaud F. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2010, 14h14   #3
Membre éclairé
 
Avatar de Soulama
 
Développeur informatique
Inscription : mai 2004
Messages : 582
Détails du profil
Informations personnelles :
Localisation : Maroc

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2004
Messages : 582
Points : 344
Points : 344
merci arnaud je vais lire le liens, et je vais tester la methode que tu me suggere.

ps: le targetId dans mon cas cest un div
__________________
Apprends la science de celui qui sait, et enseigne ta science à celui qui ignore, comme ca, tu auras appris ce que tu ignores et utilisé ce que tu sais.
Soulama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2010, 18h15   #4
Rédacteur
 
Avatar de Arnaud F.
 
Homme Arnaud Feltz
Développeur .NET
Inscription : août 2005
Messages : 5 204
Détails du profil
Informations personnelles :
Nom : Homme Arnaud Feltz
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Transports

Informations forums :
Inscription : août 2005
Messages : 5 204
Points : 6 113
Points : 6 113
Dans ce cas il faut rajouter la création du select.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
function createComboBox( list, targetId, selectorHead ){
    var comboBox = selectorHead,
        select = [], i = 0;
 
    select[i++] = '<select>';
    for(; i < list.length ; i++ ) {
        select[i++] = '<option value="' + list[i].index + '">' + list[i].optionText + '</option>\n';
    }
    select[i++] = '</select>';
 
    $(targetId).append(select.join(''));
};
__________________
C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

Installation de Code::Blocks sous Debian à partir de Nightly Builds
Arnaud F. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2010, 19h23   #5
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 29 976
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 29 976
Points : 45 024
Points : 45 024
juste si tu as besoin d'utiliser le name du select ensuite:

Code :
1
2
3
4
5
6
7
var sel=document.createElement('<select name="mysel">')
myopt=''
for (i=0;i<5000;i++){
  myopt+='<option value="'+i+'">'+i+'</option>';
 }
$(sel).append(myopt)
$('#foo').append(sel)
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2010, 09h55   #6
Membre éclairé
 
Avatar de Soulama
 
Développeur informatique
Inscription : mai 2004
Messages : 582
Détails du profil
Informations personnelles :
Localisation : Maroc

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2004
Messages : 582
Points : 344
Points : 344
merci Arnaud et SpaceFrog, ca ma beacoup aider.
__________________
Apprends la science de celui qui sait, et enseigne ta science à celui qui ignore, comme ca, tu auras appris ce que tu ignores et utilisé ce que tu sais.
Soulama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2010, 12h35   #7
Rédacteur
 
Avatar de Arnaud F.
 
Homme Arnaud Feltz
Développeur .NET
Inscription : août 2005
Messages : 5 204
Détails du profil
Informations personnelles :
Nom : Homme Arnaud Feltz
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Transports

Informations forums :
Inscription : août 2005
Messages : 5 204
Points : 6 113
Points : 6 113
Citation:
Envoyé par Soulama Voir le message
merci Arnaud et SpaceFrog, ca ma beacoup aider.
Vous avez gagné combien de temps environ?
__________________
C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

Installation de Code::Blocks sous Debian à partir de Nightly Builds
Arnaud F. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 11h13   #8
Membre éclairé
 
Avatar de Soulama
 
Développeur informatique
Inscription : mai 2004
Messages : 582
Détails du profil
Informations personnelles :
Localisation : Maroc

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2004
Messages : 582
Points : 344
Points : 344
avant jai u un rendering des SelectBoxes entre 10 et 15 secoonde. avec le nouveau code cest entre 5 a 8 secondes, presque la moitier du temps jai gagner, perfect
__________________
Apprends la science de celui qui sait, et enseigne ta science à celui qui ignore, comme ca, tu auras appris ce que tu ignores et utilisé ce que tu sais.
Soulama est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h52.


 
 
 
 
Partenaires

Hébergement Web