IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Optimisation de code


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Directeur H�telier
    Inscrit en
    Janvier 2011
    Messages
    48
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France, Var (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Directeur H�telier
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Janvier 2011
    Messages : 48
    Par d�faut Optimisation de code
    Bonjour � tous.

    Je vais vous exposer ma demande le plus clairement possible. J'essais actuellement de faire une feuille de calcul de caisse (pour parfaire mes connaissances personnelles). Je suis parti un peu dans tous les sens pour mes d�battre avec ce que j'ai pu voir sur des forums ou des sites de tutoriels. Je me suis tellement d�battu que je me retrouver avec un code fonctionnel mais que j'aimerais optimiser afin de ne plus avoir tant de fichiers differents.

    J'ai donc :
    • calcul.php (formulaire de calcul)
    • Result.php (page imprimable du tout calcul�)
    • calculs.js (qui effectue les calculs)
    • Verif.js (qui v�rifie que la caisse est bonne)
    • nan.js (qui v�rifie les inputs afin qu'il n'y ai que des chiffres compatible)


    Globalement � chaque perte de focus sur un des champs j'ai la fonction cal() qui calcul... Apr�s je clique sur un bouton "v�rifier" (#verification) pour lancer la v�rification, qui charge �galement, avec les r�sultats un autre formulaire (cach�) que j'envoie sur la page Result.php avec un bouton submit "imprimer"...

    Tout est tr�s long et compl�tement brouillon. C'est pourquoi je viens vers vous aujourd'hui pour apprendre un peu plus et essay� de ranger, d'am�liorer et d'optimiser. Par exemple est ce que tout les DOCS.JS peuvent �tre transform�s un un seul qui travaillera pour chaque fonction ? puis-je me s�parer d'un des deux boutons en ne faisant partir les fonctions que via le bouton imprimer ?

    Je vous laisse les fichiers list�s si vous souhaitez visualiser le "bordel" j'ai pas contre �vit� le css donc pas de panic c'est juste moche

    Merci d'avance � tous ceux qui prendrons un peu de temps pour m'expliquer et me montrer deux ou trois astuces.

    caisse.rar <-- Pi�ce jointe modifi�e

    Cordialement, Nicolas

  2. #2
    R�dacteur

    Avatar de autran
    Homme Profil pro
    D�veloppeur Java
    Inscrit en
    F�vrier 2015
    Messages
    1 241
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur Java
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : F�vrier 2015
    Messages : 1 241
    Billets dans le blog
    55
    Par d�faut
    ta pi�ce jointe ne fonctionne pas
    D�veloppeur Java
    Site Web

  3. #3
    Expert confirm�
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par d�faut
    Bonjour Nicolas,

    je vais jeter un coup d'�il. Tu auras mon commentaire dans un an ou deux
    La FAQ JavaScript � Les cours JavaScript
    Touche F12 = la console → l�outil indispensable pour d�velopper en JavaScript !

  4. #4
    Membre averti
    Homme Profil pro
    Directeur H�telier
    Inscrit en
    Janvier 2011
    Messages
    48
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France, Var (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Directeur H�telier
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Janvier 2011
    Messages : 48
    Par d�faut
    Bonjour et merci de t'y pencher d�j� ! 👍
    un an ou deux !? C'est si mauvais que �a !? 😧
    J'esp�re quand m�me que j'ai fais deux ou trois trucs bien dedans ... en m�me temps j'essaie d'apprendre donc deux ou trois tuto pourraient bien m'aider. Je vais essayer de lire en m�me temps.

    Bon dimanche, Nicolas

  5. #5
    Expert confirm�
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par d�faut
    Apr�s une premi�re lecture rapide, j'ai quelques remarques.

    D'abord, il manquait la classe JFactory, mais j'ai pu me d�brouiller sans. J'ai quand m�me fait une recherche et j'ai vu que c'�tait li� � Joomla. Si tu veux mon avis (tr�s) personnel : si tu as vraiment l'intention d'apprendre � coder proprement, que ce soit en PHP ou en JS, fuis les CMS comme la peste. Ils ne t'apporteront que des ennuis.

    Ensuite, les styles. Comme tu l'as fait remarquer, il n'y en a pas. Le probl�me, c'est qu'il y en a quand m�me :

    � Les <br> qui se suivent traduisent une volont� de cr�er une marge, un espacement, bref : c'est de la mise en page. De mani�re g�n�rale, jamais plus d'un <br> � la fois dans le code HTML. La mise en page c'est le domaine de CSS, donc fais les espacements dont tu as besoin avec du code CSS.

    � M�me remarque pour les &nbsp;. Tiens au passage, culture g� : &nbsp; c'est le no-break space, en fran�ais l'espace ins�cable (et quand on parle d'espace en typographie, le mot est f�minin : on dit une espace ins�cable). C'est une espace qu'on met aux endroits o� on ne veut pas qu'il y ait un saut de ligne. Son emploi en HTML est largement abusif en g�n�ral

    � Tu peux �viter les probl�mes de guillemets les plus simples si tu utilises la vraie apostrophe. Tu peux la copier depuis un traitement de texte (ils font la substitution automatiquement) ou bien aller sur le site que je viens de lier et apprendre � la taper sur ton clavier pour aller plus vite. Ou alors tu peux aussi utiliser l'entit� &rsquo;.
    Plus besoin de blackslash dans 'L\'Abbé de L\'Isle' si tu peux �crire 'L’Abbé de L’Isle' ou 'L&rsquo;Abbé de L&rsquo;Isle'.

    � Les infobulles : il y a moyen d'en faire sans JS� En mettant simplement un attribut title ! On a le droit de le mettre quasiment partout. Les utilisateurs ont l'habitude de voir appara�tre une infobulle sur les �l�ments qui sont soulign�s en pointill�s et sur lesquels le curseur prend la forme d'un curseur d'aide, deux choses qui sont facilement r�alisables en CSS. Du coup je te conseille de cr�er une r�gle CSS :
    Code CSS : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    *[title] {
      border-bottom: dotted thin black;
      cursor: help;
    }
    Un peu comme la balise <abbr>.
    Ainsi tu pourras remplacer par exemple :
    Code html : S�lectionner tout - Visualiser dans une fen�tre � part
    <span class="type" onMouseOver="infobulle(this, 'Total des encaissements en chèques vacances');">Total ANCV :</span>
    Par :
    Code html : S�lectionner tout - Visualiser dans une fen�tre � part
    <span class="type" title="Total des encaissements en chèques vacances">Total ANCV :</span>

    � La balise <q> ! Il n'y aura jamais assez de <q> sur Internet. d�sol�
    Pour indiquer une citation courte ou une expression. Je pense que tu peux l'utiliser � cet endroit :
    Code html : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    &ndash;&nbsp;Entrez les informations du journal de caisse demandée et
      remplissez votre feuille de caisse. Lorsque vous avez terminé vous
      pouvez la <q><strong>vérifier</strong></q> et
      l&rsquo;<q><strong>imprimer</strong></q>.
    Tu l'auras compris, elle remplace les guillemets. L'int�r�t est que tu peux changer le style des guillemets � volont� en les sp�cifiant dans le CSS :
    Code CSS : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    q {
      quotes: '\00AB\00A0' '\00A0\00BB';
    }
    On a une d�claration en deux parties, la partie � guillemet gauche � et la parte � guillemet droit �. 00AB est l'unicode pour «, 00BB est l'unicode pour ». Quant � 00A0, il s'agit de notre amie l'espace ins�cable

    Tu peux ne pas aimer la balise <q> car avec elle, les guillemets ne sont pas s�l�ctionnables. �a peut �tre vu comme un avantage ou un d�faut, selon le point de vue. En tout cas ils apparaissent bien � l'impression (du moins dans l'aper�u).

    � Derni�re remarque : tes doctypes sont invalides, il y a des &nbsp; dedans. En parlant de �a, tu peux passer ton code HTML � la moulinette du validateur, il te dira plein de trucs, souvent utiles, dont tu as le droit de tenir compte ou pas.

    � Allez, deuxi�me derni�re remarque (apr�s j'arr�te, promis) : les attributs align et les attributs style. Tout �a c'est de la mise en page donc il faut essayer d'en avoir le moins possible dans le code HTML. Cela dit, il y a certains aspects des tableaux qui sont difficiles � reproduire avec CSS, du coup je reconnais que certains usages de align (et surtout valign en fait) se justifient.

    Voil� pour les styles, et un petit peu de typographie aussi. Je passe au code PHP et je te dis ce que j'en pense
    La FAQ JavaScript � Les cours JavaScript
    Touche F12 = la console → l�outil indispensable pour d�velopper en JavaScript !

  6. #6
    Expert confirm�
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par d�faut
    Dans ton code PHP, tu as beaucoup de redondance, en particuler avec les noms de variable qui se terminent par un chiffre comme $nb1, $nb2, etc. C'est un cas o� il faudrait utiliser un tableau.

    Code PHP : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    // depuis PHP 5.4, on déclare les tableaux comme en JS
    $nb = [];
     
    // si tu n'as pas accès à une version récente de PHP
    $nb = array();
    Ensuite, tu peux factoriser ton code (c'est-�-dire �liminer les r�p�titions) dans un boucle for.
    Code PHP : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    for ($i = 1; $i <= 15; $i++) {
      $nb[$i] = empty($_POST["nombre{$i}t"]) ? 0 : $_POST["nombre{$i}t"];
    }
    Attention, j'ai fait commencer la boucle � 1 et non pas � 0 comme on fait d'habitude, pour que les index correspondent aux noms de tes variables.
    Par la suite, tu acc�des � tes variables par la notation index : <?php echo $nb[9]; ?> au lieu de <?php echo $nb9; ?>
    La m�me chose avec $tt.

    Autres trucs en vrac :

    � La fonction date accepte des caract�res �chapp�s, tu peux donc faire par exemple : echo date('H \h i'); pour afficher l'heure sous la forme 21 h 54 (le h du milieu n'est pas interpr�t�). D'ailleurs, au d�but de ton code, tu as une d�claration superflue de la variable $heure.

    � Tu ne v�rifies pas l'existence de tous les param�tres POST, �a g�n�re des tas d'alertes. Si tu as d�sactiv� les alertes, c'est mal ! Un bon code PHP ne produit aucun message ni d'alerte ni d'erreur. Cela ne veut pas dire qu'il ne fait jamais d'erreur ; mais les erreurs qui s'y produisent sont trait�es au bon moment et ne remontent pas jusqu'� l'utilisateur. Et interdit de tricher avec l'op�rateur @ !
    En l'occurence, tu testes d�j� une partie de tes param�tres avec empty. C'est un bon d�but, et je te conseille de faire subir le m�me traitement aux autres param�tres.

    � Attention toutefois avec empty : un 0 sera consid�r� de la m�me mani�re qu'un param�tre absent. Si tu veux prendre en compte les 0, il vaut mieux utiliser isset.

    � Pour revenir aux histoires d'alertes, tu peux t'assurer de les voir toutes, quelle que soit la config du serveur, en pla�ant ceci ligne au tout d�but de ton script :
    Code PHP : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    <?php
    error_reporting(-1);

    � Un point sur la s�curit� : tu le sais sans doute, les donn�es provenant du client sont susceptibles de contenir du code malveillant. Comme les valeurs que tu attends sont toutes des nombres (si je me trompe pas), tu peux te prot�ger facilement en convertissant explicitement toutes tes valeurs en type num�rique, avec intval.

    Voici un d�but de code qui valide les param�tres, ne g�n�re pas d'alerte et g�re correctement les 0 :
    Code PHP : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    $nb = [];
    $tt = [];
    for ($i = 1; $i <= 15; $i++) {
      $nb[$i] = isset($_POST["nombre{$i}t"]) ?
                              intval($_POST["nombre{$i}t"]) : 0;
      $tt[$i] = isset($_POST["tot{$i}t"]) ?
                              intval($_POST["tot{$i}t"]) : 0;
    }

    � Je reviens un petit coup sur le HTML : le validateur signale des attributs id qui ne contiennent que des chiffres. C'est d�conseill�, mais la plupart du temps �a marche quand m�me. � toi de voir. Moi je pense que �a ne bouleversera pas ton application si tu les enl�ves purement et simplement.
    La FAQ JavaScript � Les cours JavaScript
    Touche F12 = la console → l�outil indispensable pour d�velopper en JavaScript !

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. optimiser le code d'une fonction
    Par yanis97 dans le forum MS SQL Server
    R�ponses: 1
    Dernier message: 15/07/2005, 08h41
  2. Optimiser mon code ASP/HTML
    Par ahage4x4 dans le forum ASP
    R�ponses: 7
    Dernier message: 30/05/2005, 10h29
  3. optimiser le code
    Par bibi2607 dans le forum ASP
    R�ponses: 3
    Dernier message: 03/02/2005, 14h30
  4. syntaxe et optimisation de codes
    Par elitol dans le forum Langage SQL
    R�ponses: 18
    Dernier message: 12/08/2004, 11h54
  5. optimisation du code et var globales
    Par tigrou2405 dans le forum ASP
    R�ponses: 2
    Dernier message: 23/01/2004, 10h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo