2009-03-14 7 views
1

Je crée un "blog" d'une seule page (si Javascript est activé) progressivement construit qui utilise AJAX pour demander du code HTML pour les nouvelles pages vers lesquelles l'utilisateur navigue.Gestion de la mémoire DOM et de la CPU

Lorsque l'utilisateur accède à de nouvelles pages ils seront ajoutés l'un après l'autre dans les DOM dans une petite fenêtre avec « overflow: hidden; »:

<div id="foo" style="width:200px; height:100px;"> 
    <div id="bar" style="width:999999px"> 
    </div> 
</div> 

Lorsqu'un appel retourne AJAX succès un div sera ajouté en #bar.

Comment cela affectera-t-il le navigateur quand il y a beaucoup de pages cachées en dehors de la largeur de #foo? Dois-je supprimer les div du DOM lorsque l'utilisateur s'en éloigne? Ensuite, je devrai faire une nouvelle requête AJAX si l'utilisateur choisit d'y accéder à nouveau. :(

Merci

Willem

Répondre

2

Peu importe ce que les gens disent que GC fera pour vous, que ce soit en JavaScript ou en C# ou Java, méfiez-vous et oubliez la promesse stupide de la gestion automatique. Nettoyez-le explicitement et dormez bien.

Raison très simple: les fermetures fuient et fuient assez mal au moment où vous sortez des scénarios les plus simplistes (le cas pour le JavaScript du navigateur aussi bien que pour C#/java).

+0

Veuillez définir GC. En tant que développeur débutant, j'ai aussi du mal à comprendre ce que vous entendez par fermeture. Merci – Willem

+0

GC, garbage collector, partie de votre navigateur, runtime et parfois OS gestionnaire de mémoire virtuelle. Pour comprendre les fermetures, il est important que vous plongez dans le style fonctionnel et lambdas et l'utilisation de certains délégués. http://en.wikipedia.org/wiki/Closure_(computer_science).Soyez explicite et nettoyez, ça paye. –

+0

Sortez la partie ".Be" (L'interpréteur de balisage sur stackoverflow a des problèmes classiques). Juste Google pour l'utilisation de fermeture spécifique dans le langage favori, que ce soit JS, C# ou Java. –

0

moteurs de mise en page du navigateur modernes sont généralement assez intelligent pour ne pas traiter les éléments qui sont cachés, il ne prendra pas beaucoup de puissance CPU. Cependant, l'ajout d'un grand nombre de noeuds avec Les graphes d'objets très complexes peuvent être coûteux dans certains navigateurs, donc je ferais attention à ceci.Notez également que même s'ils ne sont pas disposés, ils sont toujours là dans le cadre du DOM, et l'utilisation de la mémoire pourrait éventuellement devenir un préoccupation si ces nœuds sont grands

Questions connexes