2010-02-09 5 views
1

J'ai une page simple dans laquelle dans la tête je charge plusieurs fichiers JavaScript distants (j'en ai besoin et je ne peux pas avoir de copie locale).Chargement de fichier JavaScript à distance dans une page

Les scripts je charge sont similaires à ceux-ci:

<script type="text/javascript" src="http://mymachine/donald/script1.js"></script> 
<script type="text/javascript" src="http://mymachine/donald/script2.js"></script> 

Dans la première charge de la page j'ai eu plusieurs messages d'erreur concernant les objets qui sont liés à ces deux scripts. Donc, je pense que la page est rendue AVANT que les scripts ne soient téléchargés et exécutés. Si j'essaie de recharger la même page (avec le cache chargé avec les scripts), je ne reçois aucune erreur.

Cependant si j'essaie de télécharger chaque fichier deux fois, je n'obtiens aucune erreur même si le cache du navigateur est propre. Je pense que c'est une mauvaise approche mais je ne connais aucune alternative.

Y at-il une balise qui me permet d'arrêter le rendu de la page à moins que les scripts ne soient téléchargés? Ou une option du navigateur? (Je n'aime pas cette alternative mais elle pourrait être une seule). Je dois soutenir que Internet Explorer 7.

J'ai partiellement résolu en utilisant un double chargement des js similaires à celui-ci:

mais il est correct?

<script type="text/javascript" src="http://mymachine/donald/script1.js"></script> 
<script type="text/javascript" src="http://mymachine/donald/script1.js"></script> 
<script type="text/javascript" src="http://mymachine/donald/script2.js"></script> 
<script type="text/javascript" src="http://mymachine/donald/script2.js"></script> 

les bibliothèques ne dépendent pas l'une de l'autre. En fait, si vous chargez alternatevly script1 et script2 les erreurs restent.

Répondre

0

C'est bizarre, je pensais que <script> étiquettes dans le <head> ont bloqué la page jusqu'à ce qu'ils aient été téléchargés. Sont-ils les premiers scripts de votre section <head>? Ils devront au moins venir avant tout JavaScript qui repose sur eux.

+0

Oui, ils sont les premiers scripts dans ma section de tête – egesuato

+0

OK. Donc, l'autre JavaScript sur la page, qui repose sur ces fichiers, se trouve dans la section ''? –

0

Vous devriez essayer de pousser ces balises très bas sur la page juste avant le </body>. Si vous avez seulement besoin de supporter IE7 cela peut résoudre le problème que vous rencontrez.

+0

mais il existe d'autres fichiers javascript qui utilisent ces fichiers. Ils doivent donc être les premiers à être chargés. – egesuato

+0

Alors peut-être vous devriez les mettre tous en bas dans l'ordre d'importance. –

0

si votre exécutons les scripts de ces fichiers - attendre l'événement de chargement du document ...

+0

Je ne peux pas toucher le reste de la page, seulement la section de tête. – egesuato

+0

Ceci ne fournit pas de réponse à la question. Pour critiquer ou demander des éclaircissements à un auteur, laissez un commentaire sous son article. – devundef

+0

@devundef Cela ressemble à une réponse. Il ne demande pas plus d'informations, mais donne une solution possible au problème. –

Questions connexes