Lequel a les meilleures performances. J'ai un tableau de liste qui contient une liste d'articles. Lorsque je liste les articles, j'ai un RenderPartial qui affiche un seul article et la page parente passe par une boucle de tous les articles. Le Renderpatial est à l'intérieur de la boucle de la page parent. Quelle est la meilleure manière de s'occuper de ça?ASP.NET MVC - Pour boucle à l'intérieur de RenderPartial ou Outside RenderPartial
Répondre
Boucle dans la vue partielle si vous le pouvez. Chaque fois que vous appelez RenderPartial, les choses suivantes se produire (avec la permission des fichiers source MVC):
RenderPartial
appelsRenderPartialInternal
RenderPartialInternal
crée une nouvelleViewDataDictionary
et une nouvelleViewContext
RenderPartialInternal
appelsFindPartialView
pour localiser et instancier une vueFindPartialView
recherche tous les moteurs de vue enregistrés (normalement un seul) pour la vue, en utilisant le contexte du contrôleur et le nom de la vue en tant que clés. Chaque moteur de vue recherche la vue dans tous les chemins qu'elle prend en charge, par ex. Vues/controller/view.aspx, Vues/controllers/view.ascx, Views/Shared/view.aspx, etc. Les vues peuvent être renvoyées à partir d'un cache mémoire pour accélérer cette étapeLa méthode
Render
de la vue est appelée. J'ai perdu la trace du fonctionnement interne de la méthodeRender
de la normeWebFormView
à 13 niveaux dans la pile.Render
construit un grand nombre d'objets de contexte dont la vue interne a besoin, vérifie les autorisations pour exécuter la vue, connecte les événements pour les contrôles serveur, réinspecte l'objet Request pour décider de ce qu'il doit faire de plus, etc. Après avoir rendu la vue, il déroule le contexte qu'il a créé.
Dans l'ensemble, rien de tout cela n'est trop mauvais. Tout se passe à l'intérieur de la CPU et de la RAM de la machine, ce qui est plus que ce qui peut être dit pour l'accès à la base de données typique qui se passe dans le contrôleur. Le processus doit sortir sur le disque seulement la première fois que la vue est chargée (cela peut être lent, cependant, les fichiers doivent être recherchés et la vue doit être compilée). ASP.NET MVC a dû optimiser le processus de rendu de vue pour maintenir un haut niveau de performance.
Néanmoins, c'est un peu long, et si vous pouvez éviter de l'exécuter plusieurs fois dans une requête, cela aidera à améliorer les temps de réponse de la méthode d'action.
Une chose qui permettra d'améliorer les performances de vos vues par plusieurs fois est de mettre l'Debug=false
dans votre web.config (c.-à déployer en mode de sortie)
Dans ce cas, le moteur MVC en cache toutes les vues (y compris partials) et ne tentera pas de résoudre leur emplacement et de les charger sur chaque tentative de les utiliser.
- 1. asp.net MVC RC1 RenderPartial ViewDataDictionary
- 2. ASP.Net MVC et RenderPartial w/chemins relatifs
- 3. ASP.NET MVC renderPartial Gestion ID côté client
- 4. ASP.Net MVC: RenderPartial pour un fichier HTML statique
- 5. ASP.Net MVC lecture Paramètre Action/Route Info dans un RenderPartial
- 6. RenderPartial et sélection dynamique de vues partielles
- 7. Impossible de spécifier le nom du contrôleur dans RenderPartial
- 8. xVal Validation côté client avec ajax, RenderPartial formulaire
- 9. Passez Viewdata en tant que membre à partir d'autres données à RenderPartial rend le premier null
- 10. ASP.NET MVC Beta 1 - où est Html.RenderPartial?
- 11. asp.net MVC vue partielle contrôleur action
- 12. pour les sorties des états de boucle qui relie à differnent contrôleurs en asp.net mvc
- 13. jQuery .append outside tag
- 14. ASP.NET MVC - MasterPageView et RenderPartials - Confusion
- 15. Engine pour ASP.net MVC
- 16. Will_paginate pour ASP.NET MVC
- 17. IModelBinder ou IOC dans ASP.NET MVC?
- 18. ASP.NET MVC, Webform hybride
- 19. De monorail à ASP.Net MVC
- 20. LoginStatus pour ASP.Net MVC?
- 21. Introduction à Asp.net MVC
- 22. Ordre de boucle d'événement ASP.Net
- 23. Contrôles de planification pour ASP.Net MVC
- 24. Comment puis-je l'implémenter sur asp.net ou asp.net mvc
- 25. MVC Framework pour ASP.net 3.0?
- 26. asp.net mvc - Route pour chaîne ou int (ie/type/23 ou/type/chapeaux)
- 27. ASP.NET MVC - Attribut de texte Case à cocher
- 28. chemin_prefix pour asp.net routes mvc
- 29. Page de chargement pour ASP.Net MVC
- 30. ASP.NET MVC - données De retour au format HTML ou XML