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 :

Sortir de jQuery pour passer en JavaScript natif


Sujet :

JavaScript

  1. #1
    Membre éclairé Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    710
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 710
    Par défaut Sortir de jQuery pour passer en JavaScript natif
    Bonjour,

    Je viens de récupérer un projet dont la couche front intègre beaucoup de javascript implémenté avec jQuery.
    Le projet fonctionne mais il est rendu très complexe car, de ce que j'en comprends, et pardonnez moi / corrigez moi si je n'utilise pas les bons termes, en jQuery, on ne peut manipuler des objets qu'après la fin de l'exécution d'une fonction.
    Ainsi j'ai des fonctions imbriquées dans des fonctions imbriquées dans des fonctions imbriquées dans des fonctions... etc etc

    J'envisage de refaire le projet en JS natif afin de retirer la complexité et la profondeur des fonctions (qui du coup perdent en réutilisabilité). Que me conseilleriez-vous ?

    Merci de vos avis.

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 603
    Par défaut
    vous pouvez regardez les pages suivantes pour des informations sur les équivalents entre jquery et javascript de base :
    https://github.com/camsong/You-Dont-...r/README-fr.md
    https://youmightnotneedjquery.com/

    par contre jquery est uniquement une bibliothèque qui permettait d'harmoniser les différences entre les navigateurs, cela ne devrait pas influencer sur la façon d'utiliser les objets.
    pouvez vous nous montrer un exemple de code avec les imbrications dont vous parlez ?

  3. #3
    Membre éclairé Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    710
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 710
    Par défaut
    Merci Mathieu pour ces liens qui me seront très utiles !

    Je suis encore en découverte du code, peut être que les imbrications évoquées sont obligatoires, par exemple :
    - je crée un tableau
    - une fois le tableau créé j'ajoute une ligne
    - une fois la ligne crée je mets des valeurs dans les cellules
    - une fois une valeur positionnée dans une cellule, je positionne un $('.maClasse').on('click', function(){ remplir une modale et l'afficher })
    - une fois la modale affichée, je positionne des sélecteurs sur les classes pour créer des actions

    En fait, il y a ces imbrications car chaque instruction nécessite que la précédente ait été faite.

    Le truc c'est que cela me crée des fonctions que je ne peut pas réutiliser ailleurs :
    Dans l'exemple ci-dessous, la fonction qui positionne les actions sur les sélecteurs est imbriquée dans 3 autres fonctions. Ainsi si je veux positionner, ailleurs, des actions sur les sélecteurs, je dois faire un autre fonction (ceci dit, je ne suis pas expert en JS et le code que j'ai récupéré est un peu complexe. Peut être que même en jQuery, il y a moyen de faire des choses plus simples et d'avoir des fonctions unitaires qui sont appelées dans les imbrications. J'avoue que je viens seulement d'y penser... )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $.ajax({			
    	// créer un tableau
    })
    .done(function( retour ) {
    	$.ajax({			
    		// ajouter une ligne
    	}).done(function( retour ) {
    		$.ajax({			
    			// ajouter des valeurs dans la ligne
    		}).done(function( retour ) {
    			$.ajax({			
    				// actions sur les sélecteurs
    			})

  4. #4
    Membre Expert
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 489
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 489
    Par défaut
    salut, le lien github you don't need jquery a ete ma bible le temps de la transition "back to natif"

    il faut y aller progressivement, n'essaye pas de traduire tout ton code existant en natif, mais plutot : le nouveau code, ecris-le en natif. et si tu galere trop, tant pis, laisse trainer du jquery... petit a petit, tu ecriras moins de jquery sans meme t'en rendre compte.

    pour ce qui est du $.ajax()... en natif, c'est un fetch() (qui n'est autre qu'une promesse) developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Promise

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    fetch(..)
    .then(...)
    .then(...)
    etc
    je ne peux aussi que te conseiller d'aller lire la doc a chaque fois que tu ne sais pas comment quelque chose fonctionne (la doc MDN est vraiment claire & complete) developer.mozilla.org/fr/
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    Il faut de toute façon comprendre que tu ne pourras pas traiter les données coté client avant que le fetch n'ait terminé son process...
    Donc Jquery ou natif, même combat.
    Je pense que tu es plutôt confronté à la lisibilité, et facilité de maintenance d'un code existant.
    Ma page Developpez - Mon Blog 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

    Venez sur le Chat de Développez !

  6. #6
    Membre éclairé Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    710
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 710
    Par défaut
    Merci à tous les 2 !
    Au boulot maintenant !

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

Discussions similaires

  1. Les meilleurs livres pour apprendre le JavaScript
    Par vermine dans le forum Livres
    Réponses: 23
    Dernier message: 10/06/2019, 18h58
  2. Réponses: 2
    Dernier message: 19/02/2017, 08h59
  3. Passer du javascript au Jquery
    Par cobra85 dans le forum jQuery
    Réponses: 13
    Dernier message: 11/02/2015, 18h33
  4. Commande pour passer en minuscules ?
    Par ggnore dans le forum Linux
    Réponses: 2
    Dernier message: 09/11/2004, 09h44

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