9
votes

Nombre de lignes JavaScript exécutées lors de la charge de la page

J'ai un cas d'utilisation où j'ai besoin d'obtenir le nombre total de lignes JavaScript exécutées lorsque ma page Web est chargée.

Le problème que je suis confronté est que le navigateur jette une alerte lorsqu'un certain nombre d'exécution JS dépasse (5 millions, je pense en cas d'IE) et la page est pendue.

J'ai utilisé le profileur disponible dans la barre d'outils de développeurs IE, mais cela me donne le nombre total de fonctions JS appelées mais pas le nombre total / nombre de lignes exécutées.

Toute aide est appréciée.

merci


7 commentaires

Je doute fort que cela est basé sur des lignes de code. Cela déclenche probablement lorsque le moteur JS prend trop de temps sans passer le contrôle du navigateur.


tandis que (vrai); entraînera également la pague ... obtenez ce que je dis?


@Thieftmaster: J'aurais pensé la même chose, mais il semble intéressant que l'OP soit réellement correct: blogs.msdn.com/b/jpsanders/archive/2008/09/23/...


J'ai pu résoudre ce problème dans ma machine en faisant le nombre de lignes inifinites de 5 millions de dollars en modifiant le registre, mais cela n'est pas possible pour tout le monde qui utilise ma page Web.L'utilise un outil qui me dise le nombre de lignes?


Vous faites quelque chose de terriblement faux ici.


Au lieu de travailler autour de la question, j'investirais ce délai de refactoring. 5 millions d'instructions est beaucoup pour toute page Web. Pas même Facebook, avec tout l'ajax en cours, entrave des millions.


D'après ce que je comprends, il s'agit de 5 millions de déclarations sans remettre le contrôle au navigateur, il y a donc une certaine salle de refactoring :)


4 Réponses :


0
votes

in Bash: xxx

dans php: xxx

dans nœud.js: xxx

Essayez Minification pour réduire vos numéros de ligne.

Ceci Semble comme un terrible beaucoup de code, cependant.


2 commentaires

Ça ne le fera pas. C'est-à-dire que les déclarations de comptage sont exécutées (non des lignes de code), les déclarations à l'intérieur des boucles sont comptées sur chaque itération, etc. Ceci est indiqué dans MSDN Blog POST Mellamokb fourni dans son commentaire sur la question.


Yeh, je répondais à leur question initiale, mais la réponse correcte est "réécrire ton code, c'est trop de code".





1
votes

Il suffit de la diviser en morceaux plus petits et appelle après un délai d'attente - qui arrive autour de la question à savoir. E.G.

somethingBig();
setTimeout(somethingElseBig);


0 commentaires