2010-02-03 5 views
2

Je pourrais avoir plusieurs Renderaction à mon avis, mais une chose à considérer est la performance de renderAction dans ce cas.Performance de Html.RenderAction?

Par exemple, j'ai plusieurs modules et je pourrais vous rendre sur le point de vue, il y a 2 façons de le faire:

  1. requête dans le contrôleur, ce qui est long pour appeler, nous pouvons faire async ici
  2. Dans la vue, appelez RenderAction, les requêtes seront appelées par chaque RenderAction

pouvez-vous dire quel est le meilleur et que l'on est plus rapide?

Merci

+0

Dans votre première solution, voulez-vous dire asynchrone comme dans le contrôleur asynchrone? –

+0

oui, c'est contrôleur asynchrone, il n'y a pas d'ajax impliqué dans cette question. Juste pour trouver la meilleure façon de rendre la page avec plusieurs modules dans asp.net mvc – DucDigital

Répondre

1

Il n'y a pas de réponse générale ici. Vous devez prendre cette décision au cas par cas. Personnellement, je préfère faire une seule requête autant que possible, car elle réduit les allers-retours à la base de données. Mais si votre requête concerne des produits cartésiens, il est généralement préférable de fractionner plusieurs requêtes (l'approche RenderAction).

Vous devez également considérer que l'approche RenderAction génère davantage d'actions réutilisables. Si la réutilisabilité est nécessaire, vous pouvez choisir RenderAction même si les performances ne sont pas optimales.

Une approche mixte serait de faire des requêtes futures. NHibernate prend en charge multi queries, qui peut être utilisé pour exécuter de manière transparente plusieurs requêtes dans un seul aller-retour. Ceci est appelé future queries, il n'est pas encore publié AFAIK, mais vous pouvez appliquer ce concept indépendamment de NHibernate.