7
votes

Injectez le fichier JavaScript externe dans le corps HTML après la charge de la page

Je veux charger une page javascript externe après la charge. En fait, le JavaScript contient une source pour une annonce et sa charge de page de fabrication lente. Tout ce que je veux, c'est retarder le chargement et l'exécution des annonces pour vous assurer que la charge rapide de la page.

merci, Bilal


1 commentaires

Avez-vous essayé de mettre le

5 Réponses :


2
votes

Je regarderais avec le chargement javascript asynchrone. Il existe des cadres pour cela, tels que ExigenceJs .


0 commentaires

6
votes
var script=document.createElement('script');
script.type='text/javascript';
script.src=url;

$("body").append(script);
Courtsey

3 commentaires

Il n'est pas nécessaire d'utiliser JQuery à ce stade. document.body.appendchild (script);


Cela ne montrera pas des annonces chargées par le script externe.


Le script ne devient pas immédiatement disponible (à l'aide des approches de jQuery et de non-JQuery), ce n'est donc pas une solution universelle. Vous devez soit utiliser une bibliothèque comme ASYNC ou utiliser la méthode du guyage JQuery avec une promesse (voir ci-dessous).



22
votes

Vous pouvez simplement utiliser ce script à la dernière balise de votre bloc de corps:

<script type="text/javascript">
   var script = document.createElement('script');
   script.setAttribute('src', 'http://yourdomian.com/your_script.js');
   script.setAttribute('type', 'text/javascript');
   document.getElementsByTagName('head')[0].appendChild(script);
</script>


2 commentaires

Cela ne montrera pas des annonces chargées par le script externe.


Amélioration de la dernière ligne: document.head.appendchild (script)



2
votes

$ ("# sélecteur"). Cliquez sur (Fonction () { $ .Getscript ("yourrscript.js"); });

puis exécutez ce qui est implémenté dans ce script


1 commentaires

Identique que ci-dessus, ces charges asynchrones pour être stables, vous devez utiliser une bibliothèque de synchronisation ou des promesses par exemple: $ .Getscript (URL) .Chen (fonction () {// ne sera pas appelée tant que le script est effectivement chargé} );



0
votes

Sans utiliser quelque chose comme JQuery Getcript () et une promesse ou une bibliothèque de chargement appropriée comme EXAMPJS, le script peut être inclus dans la page, mais chargera ASYNC, il n'ya donc aucune garantie qu'il sera prêt lorsque vous en avez besoin. Si vous utilisez déjà JQuery, la réponse simple est alors la suivante:

$.getScript( scriptUrl ).then( function() {
  //do this ONLY after the script is fully loaded
});


0 commentaires