我正在尝试开发一个使用标签来显示类似内容的cms系统。例如,在新闻栏目下面会有文章,博客,新闻和论坛问题共享相同的标签。每个列表中不会超过5个项目。哪个更好 - 输出缓存6个子操作或使用RenderPartial的6个DB查询?
我正在考虑显示这个相关内容的2个选项,并且想知道比我有更多经验的开发人员会推荐一个吗?
速度是主要目标,因为我们拥有同样可维护的方式来执行这两个选项。
选项1 - 输出缓存结果的RenderAction
对于每个“类似的内容”部分,使得相应的控制器上的儿童动作并缓存输出。这种感觉更像MVC的精神,对数据库调用会很轻松。但是对于5个“相似内容”列表,对于每个页面请求,这将等于6个完整的MVC周期。
我读过RenderAction can still be expensive,即使it has improved in the last couple of years。
选择2 - 用DB查询RenderPartials为每个
可替代地,对于每个“类似的内容”部分中,我们可以查询数据库,并使用的RenderPartial以显示输出。虽然这将需要每个部分的小数据库查询(5个或更少),但我想知道如何与通过不调用RenderAction保存的性能进行比较。
我经常阅读how much faster RenderPartial is compared to RenderAction。
个人而言,我不会微优化一样,直到它的绝对必需的,只是做得到与摩擦最少的完成工作 – mxmissile