Existe-t-il un moyen d'inclure une annonce javascript-chargée en dernier sur la page, mais de la positionner dans le contenu? L'objectif principal est d'éviter que l'annonce javascript ne ralentisse le chargement de la page, donc s'il existe d'autres méthodes pour y parvenir, n'hésitez pas à partager.Est-il possible de charger une annonce javascript en dernier sur la page pour éviter les temps de chargement lents?
Répondre
Il est defer
attribute vous pouvez mettre des blocs de script pour différer son exécution jusqu'à ce que la page se termine le chargement.
<script src="myscript.js" type="text/javascript" defer>
// blah blah
</script>
Je ne suis pas sûr de la recommandation générale à propos de l'utilisation de cet attribut.
EDIT: Comme @ David a fait remarquer, utilisez defer="defer"
pour XHTML
Et vous pouvez toujours mettre le code à l'intérieur du window.onload
événement afin qu'il exécute après le chargement des pages:
window.onload = function() {
// ad codes here
};
Mais l'approche ultérieure peut poser quelques problèmes, vous pourriez vouloir le tester en premier.
Plus d'informations sur this blog post par Dean Edwards, le gars qui a écrit le fameux javascript packer.
EDIT: Si la taille du code d'annonce lui-même est le problème, vous pouvez toujours différer le chargement en combinant les méthodes ci-dessus avec injection de script via document.write
:
function loadScript(src) {
document.write('<script src="' + src + '" type="text/javascript"></script>');
}
Ainsi, le code résultant pourrait ressembler à quelque chose comme ceci:
<script type="text/javascript" defer>
function loadScript(src) {
document.write('<script src="' + src + '" type="text/javascript"></script>');
}
loadScript('http://ads.example.com/advertisements.js');
</script>
Mais comme je l'ai dit, cela dépend du code d'annonce spécifique que vous obtenez aussi. En raison de la position document.write
va écrire des choses à ne pas être l'emplacement que vous voulez. Certaines modifications pourraient être nécessaires.
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
oldonload();
func();
}
}
}
Le code ci-dessus est un bon moyen d'ajouter un nouvel événement onload qui n'interfère pas avec votre javascript existant. Ensuite, vous pouvez ajouter un nouvel événement de chargement pour charger les publicités en utilisant le code ci-dessous.
addLoadEvent(function() { // call to loadScript() here });
Je place généralement la balise pour charger le script juste avant la balise de fin de corps. Donc, il charge à la fin de la page. Ceci ne donne aucune erreur de validation ou quoi que ce soit.
- 1. Temps pris pour le chargement de la fonction en C#
- 2. Suivi des clics sur une annonce Flash
- 3. Est-il possible de charger plusieurs versions différentes de jQuery sur la même page?
- 4. Exécution sélective de JavaScript lors du chargement de la page
- 5. Comment charger les images une fois le chargement de la page terminé dans ASP.Net
- 6. jQuery sur les ordinateurs lents
- 7. ASP.Net AJAX plusieurs fonctions de chargement de page possible?
- 8. Page chargement de l'image
- 9. Dans les rails est-il possible de charger la mise en page de classe dynamiquement?
- 10. detact objets http temps de chargement en javascript
- 11. page ne pas charger en javascript
- 12. Bon Javascript plugin pour afficher brièvement l'info-bulle sur le chargement de la page
- 13. Comment éviter une publication en JavaScript?
- 14. Désireux de charger le dernier enregistrement subordonné
- 15. Comment faire Google Adsense charger dernier après le reste de la page
- 16. C#/WPF: DataGrid - Dernier rang/pied de page Ligne possible?
- 17. chargement de la page distante dans DOM avec javascript
- 18. comment affichez-vous le temps de chargement de la page en PHP?
- 19. Accroche un événement javascript au chargement de la page
- 20. Charger une page dans la même fenêtre via javascript
- 21. Comment éviter les conflits de noms dans les widgets JavaScript
- 22. Chargement de plusieurs applications Flash intégrées sur une page HTML - problème avec la commande
- 23. Est-il possible que 2 JQuery-ajax travaillent en même temps pour la même page?
- 24. Beaucoup de fichiers png chargés dans des textures à utiliser avec OpenGLES provoque des temps de chargement lents
- 25. désactiver usercontrol sur le chargement de la page maître
- 26. Comment mesurez-vous la vitesse de chargement de la page?
- 27. Création de pages pour éviter les commandes redondantes + identiques
- 28. Chargement de la page jQuery et Drupal
- 29. javascript: en attente d'une page iframe à charger avant de l'écrire (mais pas de la page qui a déclenché le chargement)
- 30. Comment calculer le temps de chargement d'une application sur iPhone?
Merci pour la réponse! J'ai essayé ça et ça a bien marché. – britg
Si vous ciblez XHTML, veillez à utiliser defer = "reporter" plutôt que de simplement différer. – DavGarcia
Quelle bonne réponse! +1 –