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 :

Bonnes pratiques JavaScript [Débat]


Sujet :

JavaScript

  1. #61
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    Effectivement , de plus suite a mes recherches :

    http://www.developpez.net/forums/d72...amique-script/

    Pas pris en compte sous IE6
    est ton ami fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes

    Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )

  2. #62
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    Chez moi, sous IE6 l'ajout de script marche tres bien...

    @olivierPa : Parce que si dans ce que tu ajoutes via innerHTML tu as du script ou des gestionnaires d'évenement, sous IE notamment tu risques d'avoir des problèmes. En fait, le tout est de connaitre les problèmes que innerHTML peut engendrer, et de voir si ca peut te concerner ou non.

  3. #63
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 26
    Points : 22
    Points
    22
    Par défaut
    @DoubleU:
    Ok, je suis d'accord avec ce point de vue: utiliser innnerHTML tout en ayant conscience de ses limitations. Bon, a priori, il ne me serait pas venu a l'esprit d'ajouter du script javascript avec du innerHTML... mais c'est toujours mieux d'etre au courant. Merci.

    olivier.

  4. #64
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 39
    Points : 38
    Points
    38
    Par défaut
    Donc dans le cas précis d'importation de script ou d'écriture de <style>, le document.write serait autorisé sous IE6?

  5. #65
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    Boa67 ,
    autorisé oui ( d'ailleur la seule solution apparemment ) mais je crois que c'est le seul cas ou l'on doit utiliser document.write plutôt que le dom ...
    est ton ami fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes

    Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )

  6. #66
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <html>
     
    	<head>
    		<script type="text/javascript">
     
    			function load()
    			{
    				var scr = document.createElement("script");
    				scr.src="test.js";
    				scr.type="text/javascript";
    				document.getElementsByTagName("head")[0].appendChild(scr);
    			}
     
    		</script>
     
    	</head>
     
    	<body>
    		<script>
    			load();
    		</script>
    	</body>
     
    </html>
    Ca marche tres bien ca chez moi sous IE6, avec juste un alert dans le fichier chargé...

  7. #67
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <script type="text/javascript">
    			var MyHead = document.getElementsByTagName("head")[0];         
    			var newScript = document.createElement('script');
    			newScript.type = 'text/javascript';
    			newScript.src = 'test.js';
    			MyHead.appendChild(newScript);
    			//Appel de la méthode du fichier
    			test();
    		</script>
    placé dans le body ( le fichier test est dans le même dossier ) ...

    en incluant le fichier directement ça marche ( avec une méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function test(){ alert('test')}
    dans le fichier test ...
    si quelqu'un peut m'expliquer pourquoi

    ps :test(); is undefined ...
    est ton ami fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes

    Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )

  8. #68
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <script type="text/javascript">
    	var MyHead = document.getElementsByTagName("head")[0];         
    	var newScript = document.createElement('script');
    	newScript.type = 'text/javascript';
    	newScript.src = 'test.js';
    	MyHead.appendChild(newScript);
    	//Appel de la méthode du fichier
    	newScript.onload = function(){test();}
    </script>
    Non ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, 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
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  9. #69
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    D'un autre coté, c'est une bonne pratique ou un problème spécifique?
    Les Cours et tutoriels JavaScript
    Penser à la recherche et au bouton

  10. #70
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    On peut effectivement se poser la question
    Ceci dit, cela permet de rebondir sur une vraie bonne pratique :
    • Attendre qu'un objet soit disponible avant de le manipuler !

    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, 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
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  11. #71
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    newScript.onload = function(){test();}
    j'aurais pensé a TOUT sauf a ça

    Pour la bonne pratique pas certains car il s'agit plus d'une problème de rapidité d'exécution de code je pense...

    Par contre pour la bonne pratique , il est plus propre de loader un script via le dom plutôt qu'un document.write() ...

    On se fait un petit récapitulatif sur la première page ??

    Bovino ?
    est ton ami fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes

    Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )

  12. #72
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    Une dernière digression pour répondre au chomeur.

    Ajouter un script dynamiquement provoque une requete HTTP pour aller chercher la ressource ciblée. Cette requête se fait de façon asynchrone pour ne pas freezer le browser durant le traitement, donc au moment ou tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    			//Appel de la méthode du fichier
    			test();
    la requête a juste été envoyée, donc tu ne connais pas encore la méthode test.

    Tu ne pourras utiliser cette méthode qu'une fois le chargement complet du script terminé.

  13. #73
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    c'est plutôt logique en fait
    à aucun moment je ne me suis posé la question du load du script a chargé ( aussi petit soit-il ... )

    Merci pour le complément d'info doubleU et Bovino
    est ton ami fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes

    Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )

  14. #74
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Salut,
    Citation Envoyé par le_chomeur Voir le message
    Effectivement , de plus suite a mes recherches :

    http://www.developpez.net/forums/d72...amique-script/

    Pas pris en compte sous IE6
    Dans cette discussion le appendChild(script) se fait sur une DIV, or ce n'est pas reconnu (d'ailleurs HTML l'autorise-t-il dans sa DTD ?). Sont a priori valables soit le HEAD, soit le BODY.

    ERE
    Quand une tête pense seule, elle devient folle.

  15. #75
    Membre actif
    Profil pro
    Inscrit en
    Août 2008
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 265
    Points : 230
    Points
    230
    Par défaut
    Bonjour, je vais deriver un peu du sujet courant, mais une question me taraude...

    Une des bonnes pratiques du javascript c'est de separer le code javascript du reste du code HTML. Avec une MasterPage on a besoin d'appeler a priori ces fichiers qu'une seule fois.

    Seulement imaginons qu'un de mes scripts soit utilise que sur une seule page (heritant de ma MasterPage ). Je suppose que je dois inserer ma balise script seulement dans cette page et non dans la MasterPage, non ?

    Si oui, alors comment connaitre le juste milieu ?
    Exemple : si j'ai quatre pages sur 150 qui utilisent un javascript, que dois-je faire ?


    Merci

  16. #76
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    inclure ton script QUE dans ces pages ^^
    est ton ami fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes

    Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )

  17. #77
    Membre actif
    Profil pro
    Inscrit en
    Août 2008
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 265
    Points : 230
    Points
    230
    Par défaut
    Ben oui mais jusqu'a quel point ? Si je te dis j'en ai 50 pages sur 75 tu me reponds quoi ?

    Y a-t-il un moyen pour savoir comment optimiser tout ca ?

  18. #78
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    Ce n'est pas le sujet, tu peux ouvrir une discussion dans le forum asp.net.
    Les Cours et tutoriels JavaScript
    Penser à la recherche et au bouton

  19. #79
    Membre actif
    Profil pro
    Inscrit en
    Août 2008
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 265
    Points : 230
    Points
    230
    Par défaut
    J'ai hesite a ouvrir un sujet pour ca. Mais cette section, d'apres ce que j'ai compris de Bovino est la pour discuter des bonnes pratiques Javascript a utiliser.

    Ce probleme n'en fait-il pas parti ?

  20. #80
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    La bonne pratique :
    Citation Envoyé par le_chomeur Voir le message
    inclure ton script QUE dans ces pages ^^
    Pour la façon de faire, direction le forum asp.net.
    Les Cours et tutoriels JavaScript
    Penser à la recherche et au bouton

Discussions similaires

  1. Bonnes pratiques pour la POO en Javascript
    Par piemur2000 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 05/10/2013, 15h33
  2. bonnes pratiques syntaxe javascript
    Par Invité dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/06/2013, 10h40
  3. Bonnes pratiques de sécurité en JavaScript
    Par Toulousaing dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/04/2012, 19h47
  4. javascript orienté objet: bonne pratique et héritage
    Par negstek dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 31/08/2011, 19h27
  5. [POO] Bonnes pratiques href="javascript:fonction()"
    Par LhIaScZkTer dans le forum Général JavaScript
    Réponses: 20
    Dernier message: 04/04/2009, 18h26

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