gpt4 book ai didi

asp.net-mvc - ASP.NET MVC - For loop inside RenderPartial or Outside RenderPartial

转载 作者:行者123 更新时间:2023-12-01 10:15:17 25 4
gpt4 key购买 nike

哪个性能最好。我有一个包含文章列表的列表数组。当我列出文章时,我有一个只显示一篇文章的 RenderPartial,父页面遍历所有文章的循环。 Renderpatial 位于父页面循环内。解决此问题的最佳方法是什么?

最佳答案

如果可以,在局部 View 中循环。每次调用 RenderPartial 时,都会发生以下事情(由 MVC 源文件提供):

  1. RenderPartial 调用 RenderPartialInternal

  2. RenderPartialInternal 创建一个新的 ViewDataDictionary 和一个新的 ViewContext

  3. RenderPartialInternal 调用 FindPartialView 来定位和实例化 View

  4. FindPartialView 使用 Controller 上下文和 View 名称作为键,在所有已注册的 View 引擎(通常只有一个)中搜索 View 。每个 View 引擎在它支持的所有路径中搜索 View ,例如Views/controller/view.aspx, Views/controllers/view.ascx, Views/Shared/view.aspx等。Views可以从内存缓存返回来加速这个步骤

  5. View 的 Render 方法被调用。我忘记了标准 WebFormViewRender 方法在堆栈下方 13 层的内部工作原理。 Render 构建内部 View 需要的大量上下文对象,检查运行 View 的权限,连接任何服务器控件的事件,重新检查 Request 对象以决定还需要做什么, 等等。在实际渲染 View 之后,它会展开它创建的上下文。

总的来说,这些都还不错。这一切都发生在机器的 CPU 和 RAM 内部,这比发生在 Controller 中的典型数据库访问要多得多。该过程仅在第一次加载 View 时才需要转到磁盘(但是这可能很慢;必须搜索文件并且必须编译 View )。 ASP.NET MVC 必须优化 View 呈现过程以保持高水平的性能。

不过,这还是有点多,如果您可以避免在一个请求中多次运行它,将有助于提高操作方法的响应时间。

关于asp.net-mvc - ASP.NET MVC - For loop inside RenderPartial or Outside RenderPartial,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1331627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com