Bonjour,
Je tente d'optimiser la vitesse d'affichage d'un site en faisant en sorte que le Javascript soit chargé en dernier. Pour ce faire j'utilise un petit script trouvé sur le net qui est le suivant :
Ensuite on a juste à indiquer quel est (ou sont) le fichier à charger :
Le code semble fonctionner mais je rencontre un soucis si j'utilise cette technique avec le script Fancybox.
Mon teste est le suivant :
Ouverture de la fenêtre Fancybox :
La fenêtre ou box ne s'ouvre pas si l'appel au code "/fancybox/jquery.fancybox-1.3.4.pack.js" se réalise dans la fonction comme ci-dessus. Par contre si je fais appel au script directement suite à la fonction :
...ça fonctionne 8O .
Ma question est donc : pourquoi la fonction ne fonctionne pas alors que tout les fichiers semble être chargés correctement?
Merci
Je tente d'optimiser la vitesse d'affichage d'un site en faisant en sorte que le Javascript soit chargé en dernier. Pour ce faire j'utilise un petit script trouvé sur le net qui est le suivant :
Code:
function loadjscssfile(filename, filetype){
//extension js
if (filetype=="js"){
var fileref=document.createElement('script')
fileref.setAttribute("type","text/javascript")
fileref.setAttribute("src", filename)
}
//extension css
else if (filetype=="css"){
var fileref=document.createElement("link")
fileref.setAttribute("rel", "stylesheet")
fileref.setAttribute("type", "text/css")
fileref.setAttribute("href", filename)
}
if (typeof fileref!="undefined")
document.getElementsByTagName("head")[0].appendChild(fileref)
}
Code:
loadjscssfile("http://code.jquery.com/jquery-1.5.min.js", "js");
Le code semble fonctionner mais je rencontre un soucis si j'utilise cette technique avec le script Fancybox.
Mon teste est le suivant :
Code:
loadjscssfile("http://code.jquery.com/jquery-1.5.min.js", "js");
loadjscssfile("/fancybox/jquery.mousewheel-3.0.4.pack.js", "js");
/*Ci-dessous le fichier qu'il n'aime pas*/
loadjscssfile("/fancybox/jquery.fancybox-1.3.4.pack.js", "js");
loadjscssfile("/fancybox/jquery.fancybox-1.3.4.css", "css");
//Fenêtre Fancybox
$(document).ready(function() {
$("a[rel=example_group]").fancybox({
'width' : '80%',
'height' : '80%',
'autoScale' : true,
'transitionIn' : 'elastic',
'transitionOut' : 'elastic',
'type' : 'iframe',
'titlePosition' : 'outside',
'titleFormat' : function(title) {
return '<span id="fancybox-title-over">' + title + '</span>';
}
});
});
Ouverture de la fenêtre Fancybox :
Code:
<a rel="example_group" title="voir" href="/max469/3905.swf">Voir</a>
La fenêtre ou box ne s'ouvre pas si l'appel au code "/fancybox/jquery.fancybox-1.3.4.pack.js" se réalise dans la fonction comme ci-dessus. Par contre si je fais appel au script directement suite à la fonction :
Code:
<script type="text/javascript" src="/fancybox/jquery.fancybox-1.3.4.pack.js"></script>
Ma question est donc : pourquoi la fonction ne fonctionne pas alors que tout les fichiers semble être chargés correctement?
Merci