2016-02-18 1 views
1

J'ai un grand javascript d'une version en cours de chargement webpack en tant que tel: <script src="application.bundle.js"></script>Obtenir la progression de l'évaluation de l'étiquette de script?

Je veux ajouter une barre de progression pendant le chargement du script. Dans la chronologie des outils de développement de chrome, je peux voir que la plupart du temps de chargement est dépensé ici: "Evaluate Script", de manière compréhensible. Y a-t-il un moyen de progresser ou tout au moins un événement terminé pour savoir quand le script est terminé?

Je pourrais faire quelque chose dans le script de l'application comme window.appLoaded = true et chercher périodiquement. Existe-t-il un moyen de le faire sans modifier le script de l'application?

Répondre

1

Si vous voulez un rappel après le chargement du fichier, je vous suggère de le charger de manière asynchrone avec un appel de fonction qui utilise une fonction de rappel à la fin.

Vous pouvez mettre en place un spinner de progression avant d'appeler la fonction loader, avec le callback l'interrompant. Quelque chose comme ceci:

function myLoadScript() { 
    showMyProgress(); 
    loadScript('application.bundle.js', hideMyProgress); 
} 

Cette page présente quelques façons de load scripts asynchronously. Une fonction générique loadScript() y est affichée.

+1

En supposant qu'il a bien fait ses métriques, il semble que la majorité du temps consiste à évaluer le script, pas à le télécharger; l'asynchronicité prendrait-elle encore effet pendant l'étape de compilation? – Katana314

+1

L'utilisation de la fonction loadScript à partir de ce lien semble invoquer le rappel après l'évaluation du script ... au moins dans Chrome. Merci @terrymorse. –

+0

@ meta-meta content de pouvoir aider, acceptez-vous ma réponse? – terrymorse