2010-02-03 50 views
2

我可能喜歡在我的視圖上有多個Renderaction,但有一點需要考慮的是在這種情況下renderAction的性能。Html.RenderAction的性能?

例如,我有幾個模塊,我可以喜歡以使其在視圖上,有2種方式來做到這一點:

  1. 查詢在控制器,它長打電話,我們可以做異步這裏
  2. 在視圖中,調用的RenderAction,查詢將通過各
  3. 的RenderAction

叫你能告訴哪一個更好,哪一個是更快?

謝謝

+0

在您的第一個解決方案中,是否指async控制器中的異步? – 2010-02-03 12:44:30

+0

是的,它是異步控制器,在這個問題中沒有涉及Ajax。只是爲了找到在asp.net mvc中使用多個模塊呈現頁面的最佳方式 – DucDigital 2010-02-03 13:17:51

回答

1

這裏沒有一般的答案。你必須逐案做出這個決定。我個人傾向於儘可能多地進行單個查詢,因爲它減少了往返數據庫的次數。但是如果你的查詢涉及笛卡爾產品,你通常會更好地分解成幾個查詢(RenderAction方法)。

您還需要考慮RenderAction方法會產生更多可重用的操作。如果可重用性是必要的,即使它不是最佳的性能方面,也可能需要選擇RenderAction。

混合的方法將做未來的查詢。 NHibernate支持multi queries,它可以用於在單個往返中透明地運行多個查詢。這被稱爲future queries,它還沒有發佈AFAIK,但你可以獨立於NHibernate應用這個概念。