Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources 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 03/05/2011, 09h44   #1
 
Avatar de sylvain230
 
Homme Sylvain
Poitiers
Inscription : mai 2008
Messages : 229
Détails du profil
Informations personnelles :
Nom : Homme Sylvain
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Poitiers
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : mai 2008
Messages : 229
Points : -3
Points : -3
Par défaut Optimisation code Javascript

Bonjour,

J'ai fait un programme en WebGL.

Maintenant, je voudrais optimiser le code au maximum.
Quels conseils pourriez vous me donner pour cette optimisation ?

J'ai déjà transformé mon code pour avoir un programme orienté objet.
Qu'est ce qui demande le plus de calcul à Javascript ?

Merci d'avance
sylvain230 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 10h08   #2
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 : 30 007
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 : 30 007
Points : 45 091
Points : 45 091
Heu sans voir ton code ?
__________________
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 déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 10h09   #3
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 806
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 806
Points : 35 803
Points : 35 803
Citation:
Envoyé par SpaceFrog
Heu sans voir ton code ?
Tu veux nous faire croire que tu as épuisé ta collection de poulets à éventrer ?
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 10h18   #4
 
Avatar de sylvain230
 
Homme Sylvain
Poitiers
Inscription : mai 2008
Messages : 229
Détails du profil
Informations personnelles :
Nom : Homme Sylvain
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Poitiers
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : mai 2008
Messages : 229
Points : -3
Points : -3
Ben en fait l'idée de mon sujet c'était dé débattre un peu sur les bonnes pratiques de programmation Javascript.
Après, je voulais m'inspirer de vos idées pour améliorer mon code.

Je peux quand même vous montrer un peu si vous le désirez.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
 
// Fonction principale pour dessiner la scène
            function drawScene() {
                gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
                parametre();
 
 
                if(lumiere)  {
                    gl.uniform3f(
                    shaderProgram.ambientColorUniform,
                    parseFloat(document.getElementById("ambientR").value),
                    parseFloat(document.getElementById("ambientG").value),
                    parseFloat(document.getElementById("ambientB").value)
                );
 
                    gl.uniform3f(
                    shaderProgram.pointLightingLocationUniform,
                    parseFloat(document.getElementById("lightPositionX").value),
                    parseFloat(document.getElementById("lightPositionY").value),
                    parseFloat(document.getElementById("lightPositionZ").value)
                );
 
 
                    gl.uniform3f(
                    shaderProgram.pointLightingSpecularColorUniform,
                    parseFloat(document.getElementById("specularR").value),
                    parseFloat(document.getElementById("specularG").value),
                    parseFloat(document.getElementById("specularB").value)
                );
 
                    gl.uniform3f(
                    shaderProgram.pointLightingDiffuseColorUniform,
                    parseFloat(document.getElementById("diffuseR").value),
                    parseFloat(document.getElementById("diffuseG").value),
                    parseFloat(document.getElementById("diffuseB").value)
                );
 
                }
                // Gestion de la transparence
                if(blending)  {
                    gl.blendFunc(gl.SRC_ALPHA, gl.ONE);
                    gl.enable(gl.BLEND);
                    gl.disable(gl.DEPTH_TEST);
                    gl.uniform1f(shaderProgram.alphaUniform, parseFloat(document.getElementById("alpha").value));
                }
                else  {
                    gl.disable(gl.BLEND);
                    gl.enable(gl.DEPTH_TEST);
                }
                mat4.identity(mvMatrix);
 
 
                // Déplacement sur chaque axe
                mat4.translate(mvMatrix, [0, 0, z]);
                mat4.translate(mvMatrix, [0, y_t, 0]);
                mat4.translate(mvMatrix, [x_t, 0, 0]);
 
                // Rotation de l'objet
                mat4.multiply(mvMatrix, rotationMatrix);
 
                if(tourner) {
                   mat4.rotate(mvMatrix, degToRad(rCube), [1, 0, -1]);
                }
 
                // Le dessin
                mvPushMatrix();
 
                // Permet de dessiner un cube
                if(cube) {
                 Objet3D.webGLCube(video);
 
 
                var mvPickMatrix = Matrix.create([
                        [mvMatrix[0],mvMatrix[4],mvMatrix[8],mvMatrix[12]],
                        [mvMatrix[1],mvMatrix[5],mvMatrix[9],mvMatrix[13]],
                        [mvMatrix[2],mvMatrix[6],mvMatrix[10],mvMatrix[14]],
                        [mvMatrix[3],mvMatrix[7],mvMatrix[11],mvMatrix[15]],
                         ]);
 
                // Sélection d'un objet
                    if(doPick) {
 
                        pick = picking(mvPickMatrix);
 
                        if(pick == true)  {
                            alert("cube cliqué !");
                        }
 
                    }
 
 
                }
 
                // Permet de dessiner une sphere
                if(sphere) {
                    Objet3D.webGLSphere();
                }
 
 
                // Dessiner un objet quelconque
                if(objet) {
                    Objet3D.webGLObj();
                }
 
 
                // Dessiner une theire
                if(theiere) {
                    Objet3D.webGLTeapot();
                }
 
                mvPopMatrix();
 
                doPick = false;
 
                // Afficher le nombre d'images/sec
              //  framerate.snapshot();
 
                if (current_time < 0)
                        last_time = new Date().getTime();
 
                last_time = current_time;
                current_time = new Date().getTime();
                var fps = 1000.0 / (current_time - last_time);
                fps = Math.round(fps);
                tab[i] = fps;
                i++;
 
            }
Par exemple, ca c'est une méthode que j’appelle toutes les 15 ms. C'est pour cela que l'optimisation est importante. Moins y a de code inutile et mieux c'est

Par contre, c'est pas mal de WebGL malgré que cela reste du Javascript..
sylvain230 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 10h56   #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 : 30 007
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 : 30 007
Points : 45 091
Points : 45 091
il te plait pas ce post là ?
http://www.developpez.net/forums/d74...es-javascript/
__________________
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 déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 10h57   #6
Expert Confirmé Sénior
 
Avatar de RomainVALERI
 
Homme Romain VALERI
POOête
Inscription : avril 2008
Messages : 2 572
Détails du profil
Informations personnelles :
Nom : Homme Romain VALERI
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : POOête

Informations forums :
Inscription : avril 2008
Messages : 2 572
Points : 4 074
Points : 4 074
Par exemple ?

(edit : cramé par la grenouille ok je m'incline )
__________________

...pour les linguistes et les curieux >>> générateur de phrases aléatoires

__________________
RomainVALERI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 11h10   #7
 
Avatar de sylvain230
 
Homme Sylvain
Poitiers
Inscription : mai 2008
Messages : 229
Détails du profil
Informations personnelles :
Nom : Homme Sylvain
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Poitiers
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : mai 2008
Messages : 229
Points : -3
Points : -3
Ok ok je vais regarder ca merci
sylvain230 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 07h30.


 
 
 
 
Partenaires

Hébergement Web