Utilitaires
Jeux
Paroles
Textes
Forum
Livre d'or
Index des forums 

Index des forums


Dossier 

Base de connaissances


Dossier Groupe "Internet / Javascript"
Se connecter
Répondre
Trouver un message :
Rechercher
Jamais inscrit sur ce forum
Identifiant (pseudo) :
Mot de passe :
Courriel :
Ville/pays (facultatif) :
Attention, si vous utilisez Hotmail/Live, vous risquez de ne pas pouvoir vous inscrire car ce fournisseur bloque exagérément les messages.
M'inscrire
Déjà inscrit sur ce forum
Identifiant :
Mot de passe :
Me connecter
Déjà inscrit mais sans mot de passe
Vous avez perdu votre mot de passe ?
Vous pouvez en recevoir un autre en indiquant ci-dessous l'adresse du courriel utilisé lors de l'inscription.
Mon courriel :
Envoyer courriel

Accélérer l'appel aux fonctions Javascript "Cross-browser"


Il existe une méthode assez simple pour accélérer les traitements qui se font selon le navigateur : il faut redéfinir la fonction appelée !

Voici un exemple d'une fonction gérant l'opacité d'un objet :

function Opacite_Fixe(obj, valeur)
    {
    if (!obj) return;
    if (ie)
        obj.style.filter="alpha(opacity="+valeur.toString()+")";
    else if (ffox)
        obj.style.setProperty("-moz-opacity", (valeur-10)/100, "");          
    else if (opera)
        obj.style.opacity=valeur/100;
    else
        obj.style.filter="opacity="+ (valeur/100).toString()+")";
    }    


Cette fonction pourra être optimisée en ceci :
function Opacite_Fixe(obj, valeur)
    {
    if (ie)
            Opacite_Fixe=function(obj,valeur)
            {if (obj)
                obj.style.filter="alpha(opacity="+valeur.toString()+")";};
                
    else if (ffox)
        Opacite_Fixe=function(obj,valeur)
            {if (obj)
                obj.style.setProperty("-moz-opacity", (valeur-10)/100, "");};
                
    else if (opera)
        Opacite_Fixe=function(obj,valeur)
            {if (obj)
                obj.style.opacity=valeur/100;};
        
    else
        Opacite_Fixe=function(obj,valeur)
            {if (obj)
                obj.style.filter="opacity="+ (valeur/100).toString()+")";};
    Opacite_Fixe(obj, valeur);
    }        


Chaque condition redéfinit l'appel à la fonction. Il est possible de faire aussi nomFonction=nomFonctionIE (comme le fait Andreas IPP sur son site hep.itp.tuwien.ac.at/~ipp/abo...) mais c'est un poil plus long et ça oblige à avoir tout un tas de fonctions à l'écran quand on utilise un analyseur de fonctions.

el_juky [Administrateur] le 10/03/2009

Citer
© Eric Quillévéré (janvier 2000 - mai 2012) Inspiré d'un design de Zwatla + Lagouache
Valid CSS! Valid HTML 4.01 Transitional