2010-05-17 3 views
0

J'ai ce problème où les composants UI de ma page comme les menus déroulants sont disponibles jusqu'à ce que les scripts de tierce partie finissent le chargement. Cela cause un problème parce que qui sait ce qui se passe sur ces serveurs. Je dois détacher la disponibilité des composants interactifs de la page du chargement des trucs de tiers ...Comment détachez-vous votre pageload de scripts tiers?

comment?

=/

Répondre

3

Essayez quelque chose comme ceci:

<script type="text/javascript"> 
window.onload = function() { 
    var scripts = [ '3rdparty1url','3rdparty2url','3rdparty3url',etc...]; 
    var head = document.getElementsByTagName('head')[0]; 
    for(var i = 0; i < scripts.length; ++i) { 
    var scriptTag = document.createElement('script'); 
    scriptTag.src = scripts[i]; 
    head.appendChild(scriptTag); 
    } 
} 
</script> 

Cela va charger dans vos fichiers de script externes après que la page a terminé le chargement dans le navigateur du client. Vos éléments d'interface utilisateur de formulaire doivent tous être disponibles.

Si vous utilisez jQuery, vous pouvez le faire:

<script type="text/javascript"> 
jQuery(function($){ 
    var scripts = [ '3rdparty1url','3rdparty2url','3rdparty3url',etc...]; 
    $.each(scripts, function(i,scrurl) { 
     $('head').append($('<script>', { src: scrurl })); 
    } 
}); 
</script> 
2

Vous devriez penser soigneusement votre page afin qu'il soit bien dégradable.

Faire le menu disponible dans certaines « nu » forme avant la JS sont chargés et une fois qu'ils sont alors vous pouvez changer l'interface utilisateur pour être superfancy et plein de cloches et de sifflets :)

Ce sera également utile pour ces utilisateurs (probablement pas beaucoup, mais quand même ...) qui ont désactivé JS, et pour indexer les araignées pour attraper le contenu de vos menus.

Questions connexes