JeuWeb - Crée ton jeu par navigateur
Problème d'apostrophe - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Problème d'apostrophe (/showthread.php?tid=4842)

Pages : 1 2 3


RE: problème d'apostrophe - Sephi-Chan - 26-05-2010

(26-05-2010, 04:22 PM)Argorate a écrit : En tout cas je vois pas en quoi c'est "mal" :p

Dans ce cas, là, pourquoi utilises les feuilles de styles externes au lieu de tout définir dans le head ou dans l'attribut style de chaque balise ?

Alors, utilise des attributs est mal parce que :
  • Parce que ça t'embête, ça te force à échapper, donc ça diminue la lisibilité du code, donc sa qualité.
  • De plus, ça oblige à aller fouiller à plusieurs endroits du code source plutôt qu'à un endroit précis et commun.
  • Ensuite, ça empêche le navigateur de mettre le code en cache.

Bref, séparer la partie descriptive (HTML) de la partie interaction (Javascript) et des styles (CSS) est une bonne chose, d'autant que c'est facile à faire.

Maintenant à ton tour : en quoi c'est bien de faire ça dans des attributs ?


Sephi-Chan


RE: problème d'apostrophe - Anthor - 26-05-2010

Citation :Et les info bulles affichent les nom des fichiers (donc indirectement, oui les utilisateurs remplisse les info-bulle puisque j'affiche le nom dedans).

Si ce sont des noms de fichier, c'est à toi quelques part aussi de normaliser cette partie ^^


RE: problème d'apostrophe - Argorate - 26-05-2010

Anthor: Je pense que je n'ai pas a limité le client sur ce point. C'est juste de la technique et lui il s'en fou en plus, il veux pouvoir mettre des apostrophe et guillemet (sinon ce serait pas drole^^)

Sephi: Quand tu as besoin d'aller voir s'il y a un évènement sur un élément X en particulier (dont tu connais pas le nom car tu en as des 10ene et des 10enes sur ta pages), tu vas dans la code là où tu sais où il se trouve et tu regarde... que si j'avais 50 lignes ou plus qui regroupe tous les événement de tous les éléments, je suis pas sur de pouvoir retrouver celui que je cherche aussi rapidement...


RE: problème d'apostrophe - Sephi-Chan - 26-05-2010

Mouais… Je ne sais pas comment tu développes, ni comment tu ranges ton code. Je crois que tu es le seul à penser que ça peut poser problème de centraliser la définition de tes événements.

Tous les développeurs Javascript de renom ainsi que toutes les librairies Javascript poussent à cette pratique, n'est-ce pas parce qu'elle est éprouvée et optimal ? Wink


Sephi-Chan, c'est inée cette capacité à systématiquement choisir les solutions douteuses ? Big Grin


RE: problème d'apostrophe - Anthor - 26-05-2010

(26-05-2010, 06:11 PM)Argorate a écrit : Anthor: Je pense que je n'ai pas a limité le client sur ce point. C'est juste de la technique et lui il s'en fou en plus, il veux pouvoir mettre des apostrophe et guillemet (sinon ce serait pas drole^^)

Vive la sécurité dans ton script... Toujours filtré les input.


RE: Problème d'apostrophe - Argorate - 27-05-2010

Sephi-Chan : Je suis pas du genre a faire comme tout le monde parce que tout le monde le fait mais uniquement si sa m'apporte quelque chose. ^^

Anthor : Y a rien a sécurisé d'un autre coté... je suis dans un cadre particulier où je ne refais que l'interface mais toute la couche du traitement est déjà faite.


RE: Problème d'apostrophe - Sephi-Chan - 27-05-2010

Peux-tu coller la définition de ta fonction info_bulle() ? Et si tu passais ton objet élément à ta fonction d'infobulle ?

Je pense avoir une solution, où l'appel serait modifié comme ceci :


<div onmouseover="info_bulle(this);">

Mais j'ai besoin de voir l'implémentation de la fonction pour savoir si ça peut fonctionner.


(27-05-2010, 09:50 AM)Argorate a écrit : Sephi-Chan : Je suis pas du genre a faire comme tout le monde parce que tout le monde le fait mais uniquement si sa m'apporte quelque chose. ^^

Oui, je sais. C'est pour ça que tu n'évolues pas : tu ne te remets pas souvent en question (j'aurais bien dit jamais mais il y aura peut-être une petite exception qui me ferait mentir, après tout je ne te connais que depuis 2006).

Le problème, c'est que tu n'as pas l'expérience ou le recul pour déterminer si quelque chose t'apporte quoi que ce soit. Du coup tu n'essayes jamais de nouvelles choses, donc tu ne te rends pas compte qu'elles peuvent t'apporter, donc tu n'engranges pas d'expérience, ni de recul, et paf ! Cercle vicieux ! Résultat : tu stagnes.

Tu ne veux même pas tester des choses aussi simples qu'une centralisation des event listeners. Donc tu ne sauras jamais à quel point c'est pratique (à tel point que l'immense majorité des développeurs Javascript se sont décidé à le faire, et pas parce qu'un mec à dit que ce serait cool), donc il y à encore moins de chance que tu les délocalises dans un fichier externe et donc que tu découvres qu'en plus d'alléger ta structure (pas de onmouseover débile sur chaque élément, qui alourdissent le code visuellement et en temps de chargement, une mise en cache soit effectuée par le navigateur, donc de meilleures performances.

Au final, tu te fiches des utilisateurs de l'application en persistant à produire un code de de moindre qualité, alors que les améliorations sont triviales et auraient été faîtes depuis longtemps par un développeur qui se soucie de la qualité du code. N'importe quel développeur se rendrait compte que répéter le même attribut onmouseover, avec le même appel à la fonction, sur chaque élément, c'est bête et ça doit être capitalisé).

A nouveau (car tu ne m'as pas répondu la première fois que je te l'ai demandé), quels sont les intérêt de ton approche qui consiste à définir les event listeners dans des attributs de l'élément HTML ?

On est sur un forum d'entraide, même si ça semble être de l'acharnement, on doit être critique (mais constructif) les uns avec les autres. Et désolé si ça peut ressembler à de l'acharnement.


Sephi-Chan


RE: Problème d'apostrophe - Argorate - 27-05-2010

Ne t'inquiète pas, je n'ai aucun problème avec les critiques. Je comprend que ça chagrine Smile

Personnellement je pense pas dire que je stagne vu la quantité de chose que j'ai apprise ces derniers mois (suis en stage et je fais beaucoup de chose différente). Ceci m'amène donc a chercher, tester de nouvelles méthodes que je n'aurais certes pas tester tout seul et c'est justement ça qui est intéressant... etc

Ensuite, pour ce qui est de la "qualité de mon code", quand je vois la qualité médiocre de la plus part des codes que j'ai vu défiler dans le cadre professionnel durant l'ensemble de mes stages, alors que les codes proviennent de "professionnel" ayant des années d'expériences, je me dis que je suis peut être pas parfait, mais loin d'être mauvais (mais ce n'est qu'une autoévaluation sans doute pas objective Wink)

Pour cet histoire de mise en cache, je ne suis pas au courant. Pourquoi ça met en cache que si c'est fait de cette manière?

Citation :A nouveau (car tu ne m'as pas répondu la première fois que je te l'ai demandé), quels sont les intérêt de ton approche qui consiste à définir les event listeners dans des attributs de l'élément HTML ?
Il me semblait bien t'avoir répondu ^^
Citation :Sephi: Quand tu as besoin d'aller voir s'il y a un évènement sur un élément X en particulier (dont tu connais pas le nom car tu en as des 10ene et des 10enes sur ta pages), tu vas dans la code là où tu sais où il se trouve et tu regarde... que si j'avais 50 lignes ou plus qui regroupe tous les événement de tous les éléments, je suis pas sur de pouvoir retrouver celui que je cherche aussi rapidement...
C'est juste plus pratique a retrouvé...

Pour ce qui est de la fonction info_bule(), c'est juste un div, et cela met donc dans le div ce qu'on lui envoi en paramètre, en simplifié :

Code :
function info_bule(text)
{
    document.getElementById("curseur").innerHTML = text;
}
Donc je vois pas pourquoi tu veux passé this là? ^^


RE: Problème d'apostrophe - Sephi-Chan - 27-05-2010

C'est pour ça que je ne fais pas de distingo pro/amateur, car on a parfois de bien mauvaises surprises. Smile

Pour le cache, les fichiers externe sont mis en cache (les CSS, les Javascript, les images, etc.). Donc si tu définis des event listener dedans, c'est du code en moins défini à meme la page appelée qui n'est jamais mis en cache (chose.html dans ce cas).


<div on_mouseover="info_bulle(this);">


function info_bulle(element){
document.getElementById("curseur").innerHTML = element.getAttribute('title');
}

Avec ça, je ne vois pas de conflit possible d'apostrophes ou autre.

Par contre, fais attention avec getAttribute(), je pense que Dojo doit proposer une méthode alternative, car celle-ci pose pas mal de problème selon les navigateurs.


Sephi-Chan


RE: Problème d'apostrophe - Argorate - 27-05-2010

Ah ok, le cache dans le sens des fichiers temporaire, j'avais compris ça comme ça^^
Effectivement, ca peut être moins lourd, faut voir si ca en vaut vraiment la peine... (s'il y a que 5ko de différence... suis pas sur qu'on gagne beaucoup^^)

Pour l'info_bulle je me sers pas de "title", j'ai créer un div qui remplace le title me permettant de faire des saut de ligne et de mettre des images et de déplacer avec la souris l'info bulle.

Ce que j'ai c'est ça:

Code :
<#list folder.children as node>

je parcours une arboressance, et pour chaque je veux qu'il y est une infobulle avec diverse info quand on passe dessus:
Code :
info_bulle('<#if node.properties.title?exists>
      Titre: ' + document.getElementById('title_${node_index + 1}').value + '
<#else>
     Nom: ' + GetId('name_${node_index + 1}').value + '
</#if>
<#if node.properties.creator?exists>
    <br />Author: ${node.properties.creator}
</#if>')

et avant j'avais ça :

Code :
info_bulle('<#if node.properties.title?exists>
      Titre: ${node.properties.title}
<#else>
     Nom: ${node.name}
</#if>
<#if node.properties.creator?exists>
    <br />Author: ${node.properties.creator}
</#if>')