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 :

ajout et suppression dynamique de js


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 70
    Par défaut ajout et suppression dynamique de js
    Bonjour,

    Je travail actuellement sur un projet très dynamique. En effet, j'ai un menu à gauche de ma page, et à chaque fois que je clique sur un lien, un formulaire est charge dans une div a droite en AJAX.
    Pour éviter de charger tous les js d'un coup, je les charge un par un avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function loadJSFile(filename){
    	var fileref=document.createElement('script');
    	fileref.setAttribute("src", filename);
    	fileref.setAttribute("type","text/javascript");
    	if (typeof fileref!="undefined" && checkHeaderExists(filename))
    		document.getElementsByTagName("head")[0].appendChild(fileref);
    }
    Ce que j'aimerais, c'est pouvoir les supprimer quand je le desire.
    Pour le moment j'utilise :
    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
     
    function cleanHeader()
    {
    	var header = document.getElementsByTagName("head")[0];
    	var include = header.firstChild;
    	while(include != null)
    	{
    		if (include.nodeName == "SCRIPT")
    		{
    			if (include.attributes.item(0).nodeValue.match("form") != null)
    			{
    				header.removeChild(include);
    				cleanHeader();
    			}
    		}
    		include = include.nextSibling;
    	}
    }
    Ce n'est pas optimisé mais c'est temporaire... de toute façon ça ne marche pas. Les js sont supprimés du header, mais le navigateur les utilisent toujours. Globalement, si quelqu'un sait comment supprimer dynamiquement des include js, je suis preneur.

  2. #2
    Membre Expert 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
    Par défaut
    A ma connaissance, tu ne peux pas, car même si tu supprimes le script, les fonctions restent dans le DOM.

    Pourquoi veux-tu faire cela?

  3. #3
    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
    Par défaut
    il faut utiliser des objets instancié , et/ou utiliser la propriété delete de javascript cf : https://developer.mozilla.org/fr/R%C...9rateur_delete

  4. #4
    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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par le_chomeur Voir le message
    il faut utiliser des objets instancié , et/ou utiliser la propriété delete de javascript cf : https://developer.mozilla.org/fr/R%C...9rateur_delete
    Le problème, c'est que delete agit sur des objets JavaScript, donc appliqué à un élément HTML script, c'est cet objet qui sera supprimé à priori, mais comme le dit DoubleU, les objets inclus dans le script sont déjà intégrés au contexte et ne seront pas supprimés.
    Donc, oui, passer par des objets instanciés me semble la seule solution.
    Pourquoi veux-tu faire cela?
    J'avoue ne pas trop comprendre non plus...
    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

  5. #5
    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
    Par défaut
    en fait je partait du principe que même un script est un objet, un objet possède donc des propriétés, des méthodes et ces dernières pouvais donc être supprimé ( je n'ai pas eu le temps de tester )

    a vérifier ...

    sinon ouep il faudra instancier toutes les méthodes puis les deletes au moment voulut.


    Je n'ai pas non pris compris le but final ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 70
    Par défaut
    Mon but était simplement de ne pas charger tous les js d'un coup pour éviter un trop gros chargement, de plus j'avais certaines méthodes portant le même nom, mais finalement je me suis rendu compte que ce n'était pas réellement utile de les supprimer.
    En tous cas merci pour votre aide et pour l'idée des objets instanciés. Je vais tout de même jeter un coup d'oeil pour la culture info.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajout et suppression dynamique des textbox avec JavaScript en ASPx.
    Par zakarinalaw dans le forum Développement Web avec .NET
    Réponses: 1
    Dernier message: 29/04/2014, 14h32
  2. Ajout/Suppression dynamique de champs
    Par hedgehog dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/04/2008, 10h57
  3. Ajout/suppression "dynamique" d'un champ
    Par 6ix dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 19/04/2008, 11h11
  4. Ajout/Suppression dynamique d'éléments
    Par Norin dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/03/2007, 19h15
  5. Ajout/Suppression dynamique des lignes dans une table
    Par codexomega dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/08/2005, 18h50

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