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 :

passer le nom d'une fonction comme paramètre d'une autre fonction?


Sujet :

JavaScript

  1. #1
    Membre régulier Avatar de med_alpa
    Inscrit en
    Juillet 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 134
    Points : 87
    Points
    87
    Par défaut passer le nom d'une fonction comme paramètre d'une autre fonction?
    Bonjour,

    j'essaie de comprendre un bout de code javascript.

    en fait, je n'ai pas compris le fait de passer le nom d'une fonction comme paramètre d'une 2eme.

    Je ne sais pas si ça a un but bien particulier?
    à mon avis, il fallait appeler la fonction directement.
    Je ne pense pas qu'il l'utilise comme un Objet...

    voici le code :
    passer la fonction ajaxCallback comme argument :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    doAjax(ajaxTarget+"?thres="+threshold,ajaxCallback,0,0);
    fonction appelée :
    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
    function doAjax(ajaxTarget,ajaxCallBack,timeout,timeoutCallBack){
    	var xhr;
    	var xhrTimer;
    	try{ xhr = new XMLHttpRequest(); }
    	catch(e){ xhr = new ActiveXObject('Microsoft.XMLHTTP'); }
    	xhr.onreadystatechange = function(){
    		if(xhr.readyState == 4) {
    			ajaxCallBack(xhr.status,xhr.responseText);
    			if(timeout > 0)
    				clearTimeout(xhrTimer);
    		}
    	};
    	xhr.open("GET", ajaxTarget, true);
    	if(timeout > 0)
    		xhrTimer = setTimeout(function() { xhr.abort(); timeoutCallBack();}, timeout);
    	xhr.send(null);
    }
    la fonction passée comme argument :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function ajaxCallback(status,text){
    	document.getElementById("loader").style.visibility = "hidden";
    	document.getElementById("launch").style.visibility = "visible";
    	if(status == 200 && text != "") {
    		text = parseInt(text/10.24);
    		document.getElementById("alert").innerHTML="Brightness: " + text + " %";
    	}
    }
    une idée?

    merci pour votre aide.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 77
    Points : 68
    Points
    68
    Par défaut
    Salut,

    Ca permet sans doute de pouvoir faire des choses différentes en utilisant toujours la fonction doAjax.

  3. #3
    Membre régulier Avatar de med_alpa
    Inscrit en
    Juillet 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 134
    Points : 87
    Points
    87
    Par défaut
    Bonjour,

    merci de m'avoir répondu

    peux-tu m'expliqué d'avantage?

    merci.

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 36
    Points : 99
    Points
    99
    Par défaut
    Comme dit par djaih, ça permet d'utiliser la fonction doAjax pour faire des traitements différents selon le retour.

    En procédant comme celà, cette fonction doAjax est capable d'effectuer une requête sur une url ET de spécifier une fonction de callback pour cette requête.

    Par exemple, tu veux effectuer une requête qui retourne un nombre de produits en stock et afficher le résultat dans un alert.

    L'url à appeler sera mesproduits.fr/ajax.php.

    Tu peux procéder ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    //Fonction de Callback
    function handleResponse(status, responseText){
       alert(responseText);
    }
     
    //Appel Ajax
    doAjax("mesproduits.fr/ajax.php",handleResponse,0,0);
    Du coup tu as un traitement de retour spécifique pour la requête vers cette url et tu n'as pas besoin de toucher au code de la fonction doAjax pour celà.

  5. #5
    Membre régulier Avatar de med_alpa
    Inscrit en
    Juillet 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 134
    Points : 87
    Points
    87
    Par défaut
    Bonjour,

    ok , je comprends maintenant, c'est pour la réutilisation du code de la fonction doAjax. Donc c'est pour de futurs utilisations, parce que j'ai cru, au début, que cela a été fait pour une technique de javaScript que je connais pas

    merci pour votre aide habituelle.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 24/05/2013, 16h25
  2. Réponses: 8
    Dernier message: 12/08/2011, 09h25
  3. Passage d'une variable comme paramètre d'une fonction
    Par lowman dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/10/2007, 15h12
  4. Passer une matrice comme paramètre d'une fonction
    Par Rniamo dans le forum Langage
    Réponses: 8
    Dernier message: 16/07/2006, 20h55
  5. fonction comme paramètre d'une fonction
    Par velociraptor5679 dans le forum C++
    Réponses: 8
    Dernier message: 17/06/2006, 18h19

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