2011-09-16 4 views
0

Iam demandent actuellement certaines choses sur HTML5BP ...HTML5Boilerplate/bibliothèques d'inclusion - fallback?

Je veux inclure JQuery mobile et JQuery UI et Iam ne sais pas si cela est la bonne façon:

<body> 
    <!-- scripts and fallback to local --> 
    <script src="//code.jquery.com/jquery.min.js"></script> 
    <script src="//code.jquery.com/mobile/latest/jquery.mobile.js"></script> 
    <script src="//code.jquery.com/ui/1.8.16/jquery-ui.min.js"></script> 
    <script>window.jQuery || document.write('<script src="js/libs/jquery-1.6.2.min.js"><\/script>')</script> 
    <script>window.jQuery || document.write('<script src="js/libs/jquery-ui.min.js"><\/script>')</script> 
    <script>window.jQuery || document.write('<script src="js/libs/jquery.mobile.min.js"><\/script>')</script> 
    <!-- end scripts and fallback to local --> 

    <!-- scripts concatenated and minified via ant build script--> 
    <script src="js/plugins.js"></script> 
    <script src="js/script.js"></script> 
    <!-- end scripts concatenated and minified via ant build script--> 

La chose pourquoi Iam est pas sûr , que lorsque je suis derrière un proxy et que je n'ai pas le droit d'accéder à Internet, je m'attends à ce que le système local de secours fonctionne, mais ce n'est pas le cas. Je reçois une erreur d'authentification et la page ne se charge pas.

Est-ce la façon de l'inclure correctement?

En tête i prélecture:

<link rel="dns-prefetch" href="//code.jquery.com" /> 

Merci!

Répondre

1

Vous ne savez pas si vous êtes toujours à la recherche d'assistance ici, mais c'est parti. Votre dns-prefetch est correct et le chargement du script est fondamentalement correct avec deux problèmes:

  1. Vous ne faites que vérifier, jQuery est chargé pour vos solutions de repli. Cela signifie que si jQuery se charge correctement mais que, pour une raison ou une autre, jQuery UI ou Mobile ne vous permet pas de faire des retards, cela ne fonctionnera pas. Pas tout à fait probable puisque votre chargement depuis le même endroit mais encore ...
  2. Votre commande est, imo, mauvais. Je pense que vous devriez vérifier immédiatement après chaque - juste moins confus. Il est également plus difficile de gâcher l'ordre de chargement - la détection mobile ci-dessous sera probablement une erreur si jQuery n'est pas chargé en premier ...

J'ai modifié votre code ci-dessous. Notez que la détection mobile est ma propre invention (dans les 5 dernières minutes). Ca marche mais je ne peux pas garantir une awesomeness solide comme le roc!

<body> 
    <!-- scripts and fallback to local --> 
    <script src="//code.jquery.com/jquery.min.js"></script> 
    <script>window.jQuery || document.write('<script src="js/libs/jquery-1.6.2.min.js"><\/script>')</script> 
    <script src="//code.jquery.com/ui/1.8.16/jquery-ui.min.js"></script> 
    <script>window.jQuery.ui || document.write('<script src="js/libs/jquery-ui.min.js"><\/script>')</script> 
    <script src="//code.jquery.com/mobile/latest/jquery.mobile.js"></script> 
    <script>window.$.mobile || document.write('<script src="js/libs/jquery.mobile.min.js"><\/script>')</script> 
    <!-- end scripts and fallback to local --> 

    <!-- scripts concatenated and minified via ant build script--> 
    <script src="js/plugins.js"></script> 
    <script src="js/script.js"></script> 
    <!-- end scripts concatenated and minified via ant build script--> 
+0

Comment l'avez-vous testé? en utilisant votre version tue complètement mon code :) rien ne fonctionne plus =) – zyrex

+0

c'est bizarre .. Je viens de créer une page et a laissé tomber cela. Fonctionne toujours pour moi. Quelles erreurs obtenez-vous? Quel navigateur aussi (juste au cas où). Si vous brisez délibérément la version CDN de jquery, êtes-vous sûr à 100% que les chemins de votre copie locale fonctionnent? Si vous essayez de charger jquery mobile sans les deux autres, vous aurez un échec grave – lnrbob

0

+1 lnrbob

D'habitude, je fais aussi une condition pour les versions jQuery pour alléger à la page pour les navigateurs normaux et envoyer l'ancien jQuery aux fringues.

<!--[if (gte IE 9) | !(IE)]><!--> 
    <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> 
    <script>if (!!window.jQuery && jQuery().jquery !== '2.0.3') document.write('<script src="<?= ASSETS ?>js/jquery.2.0.3.min.js" type="text/javascript"><\/script>')</script> 
<!--<![endif]--> 
<!--[if lte IE 8]> 
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
    <script>if (!!window.jQuery && jQuery().jquery !== '1.10.2') document.write('<script src="<?= ASSETS ?>js/jquery.1.10.2.min.js" type="text/javascript"><\/script>')</script> 
<![endif]-->