2009-10-20 3 views
3

J'espère que certains gourous Javascript/ASP.Net peuvent me donner quelques conseils ici.Comment puis-je déboguer cette utilisation de la mémoire/augmentation de l'utilisation dom dans mon site de panneau JS/Update

J'ai écrit une application qui (malheureusement) utilise UpdatePanel (oui, je sais que c'était une idée stupide, mais trop tard maintenant, je le comprends plus maintenant - même si c'est un site intranet problèmes avec elle)

Le site est un site de feuille de temps basé sur le Web, genre de format tabulaire. Quoi qu'il en soit, il enregistre tout simplement dans un panneau de mise à jour, et autosaves une fois par minute. Cela semble fonctionner pour moi, mais j'utilise firefox. D'autres utilisateurs avec plus d'entrées de feuille de temps, et IE7 ont des problèmes avec l'utilisation de la mémoire IE croissante et leur navigateur ralentir.

j'ai couru Sieve (contrôles des fuites de mémoire sur un site Web) et il était assez évident qu'il était mauvais: alt text http://rodh.org/images/Programming/sievemain.png

Cest mon site chargé et laissé en marche pour un peu, rafraîchi au moment de l'immersion et à gauche et vous pouvez voir une fois par minute, il saute un peu. La zone sur la ligne de temps avant la baisse était quand je frappais un peu le bouton de sauvegarde, donc c'est évident ce qui le cause. Les noeuds DOM et la mémoire augmentent tous les deux. J'utilise un ScriptManager.RegisterClientScriptBlock (principalement pour obtenir le clientID de contrôles afin que je puisse faire des totaux javascript) et aussi un ScriptManager.RegisterStartupScript sur page_load pour obtenir le même focus après une publication partielle. Peut-être qu'ils contribuent?

Y at-il des outils qui peuvent m'aider à aller plus loin? Sieve a rapporté beaucoup de divs vides étant faits quand la publication se produit? Je n'ai jamais utilisé de tamis auparavant, alors peut-être que ça arrive toujours? alt text http://rodh.org/images/Programming/sievnodes.png

Y at-il une sorte d'analyse de code que je peux faire, ou quelque chose qui au moins me permet de voir les nouveaux noeuds DOM créés à chaque fois ...

Je pense problème hte peut-être à voir avec mon code derrière le hackery pour obtenir les identifiants des clients, il les stocke dans un tableau, puis recrée tableau sur chaque publication, peut-être que quelque chose ne va pas là? J'ai téléchargé mon fichier JS qui fait ce hackery, et aussi le code derrière au cas où quelqu'un aurait besoin de plus d'infos. http://rodh.org/images/Programming/javascript.txt http://rodh.org/images/Programming/codebehind.txt

Je suppose que ma question est la suivante: - Quelqu'un peut-il penser à quelque chose immédiatement ce serait la cause? - quelles sont les causes les plus courantes de l'utilisation accrue de DOM sur UpdatePanels (en utilisant Jquery trop btw) - quels outils puis-je utiliser pour déboguer?

+0

RODH, je suis curieux pourquoi vous avez déshonoré UpdatePanels? Je les utilise actuellement dans un projet personnel, connaissez-vous une meilleure option que UpdatePanels? – jr3

+2

Ils sont généralement désapprouvés car ils envoient beaucoup de données en arrière comme un appel ajax, comme l'ensemble viewstate je crois: http://encosia.com/2007/07/11/11/why-aspnet-ajax-updatepanels- are-dangerous/ Ils sont parfaits pour faire des choses ajax facilement et je vais continuer à les utiliser dans la bonne situation, mais ils envoient un tas de données, puis régénérer tout le HTML à l'intérieur, ce qui est le problème que je avait. Je crois que l'alternative est d'utiliser un service web asp.net et un appel de méthode ajax, ne renvoyant que ce dont vous avez besoin. Je pense qu'ils sont pratiques et super, mais se sont penchés vers le codage de l'ajax moi-même – RodH257

+0

J'ai un problème très similaire. Une page (avec beaucoup de panneaux de mise à jour) et une minuterie qui provoque une mise à jour forcée du contenu UP. Chaque fois que ce panneau est reconstruit, l'utilisation de la mémoire du navigateur augmente un peu. – CodexArcanum

Répondre

4

Je peux vous dire de première main Microsoft connaît le problème IE (KB 2000262) avec UpdatePanels. C'est un problème de parseur DOM. J'ai eu un site qui fonctionnait bien jusqu'à une certaine taille de contenu de la page et puis IE (toutes les versions) avait un ajustement. FF et d'autres navigateurs ont manipulé les mêmes pages avec facilité.

choses que je fait pour faire mes pages plus rapidement:

  • utilisation UpdateMode = conditionnel lorsque cela est possible
  • Mettre en oeuvre le KB 2000262 fix

UpdatePanel Async Postsback slow in IE…Part 3

Questions connexes