ASP.NET MVC Performance Tips(1):RenderPartial性能优化

背景

在ASP.NET MVC中,HtmlHelper的扩展方法RenderPartial为我们使用UserControl带来了 极大的方便,当我们指定一个UserControl时,RenderPartial会在当前View文件夹下查找相应的 UserControl,如果没有找到则会到Shared文件夹下查找。然后在使用RenderPartial方法有一些性能方面 的考虑,值得我们去关注。

设想有这样一个场景,一篇文章有很多个评论,在页面中我们需要呈 现出一个评论列表,自然我们会定义一个评论的UserControl,如下代码所示:

Code 1:

<%@ Control Language="C#"  Inherits="System.Web.Mvc.ViewUserControl<Comment>" %>
<%@  Import Namespace="TerryLee.MvcPerformance01.Models" %>
<p>
   ID: <%=Model.ID %> <br />
  Author: <%=Model.Author %>  <br />
  Description: <%= Model.Description %>
</p>
<hr />

在页面中呈现评论列表,代码非常简单,仅仅是遍历所有的评论而已:

Code 2:

<div>
  <%
   foreach (var comment in  Model.Comments)
   {
     Html.RenderPartial("CommentsItem",  comment);
   }
 %>
</div>

运行后效果如下,可以看到 正确的输出了评论:

时间: 2024-04-29 02:32:24

ASP.NET MVC Performance Tips(1):RenderPartial性能优化的相关文章

ASP.NET比较常用的26个性能优化技巧_实用技巧

本篇文章主要介绍了"ASP.NET中常用的26个优化性能方法",主要涉及到ASP.NET中常用的26个优化性能方法方面的内容,对于ASP.NET中常用的26个优化性能方法感兴趣的同学可以参考一下.  现在很多客户也慢慢开始注重网站的性能了,同时有很多运营网站的公司也不像以前那样特别在意网站是否非常漂亮,而把更多的精力放在了网站性能优化上面,提供更快更稳定的浏览速度,在这个基础上面进行网站功能上的扩充和完善,那么在asp.net中如何优化性能呢? 1. 数据库访问性能优化 数据库的连接和

适合ASP.NET MVC的视图片断缓存方式(下):页面输出原则

上一篇文章里已经把Html.Cache打造成了非常具有可用性的API,需要缓存时我们只需在页面上做一个 标记即可: <% Html.Cache("cache_key", DateTime.Now.AddSeconds(10), () => { % > <% foreach (var article in Model.Articles) { %> <p><%= article.Body %></p> <% } %&g

ASP.NET MVC之Session State性能问题(七)

前言 这一节翻译一篇有关Session State性能问题的文章,非一字一句翻译. 话题 不知道我们在真实环境中是否用到了Session State特性,它主要用来当在同一浏览器发出多个请求时来存储数据,在现在我们更多的为了避免整个页面刷新,Web应用程序更多倾向于利用高扩展性的Ajax,但是不知道我们是否注意到当我们使用Session数据多次请求MVC上的Action方法时产生的性能问题呢? 将Session放入上下文中(Put Session into the Context) 在进行代码演

ASP.NET MVC之如何看待内置配置来提高性能优化(四)

前言 前几篇我们比较基础的讲了下MVC中的知识,这一节我们穿插点知识,讲讲MVC中我们可以提高性能的办法. Razor视图引擎优化(优化一) 我们知道默认情况下配置MVC去解析一个视图会首先约定通过查找所有的匹配Web Form视图引擎的名称.例如当我们查找一个不存在的视图时,会出现如下错误: 从上面我们可以很明显的知道,如果我们MVC应用程序中没有使用ASPX视图时,当我们在Action方法中通过 return View() 返回视图或者 Html.RenderPartial 等查找视图时每次

asp.net mvc Partial OutputCache在SpaceBuilder中的应用实践

最近给SpaceBuilder增加OutputCache 时发现了一些问题,贴在这做个备忘,也方便遇到类似问题的朋友查阅. 目前SpaceBuilder 表现层使用是asp.net mvc v1.0,使用了很多RenderAction(关于asp.net mvc的Partial Requests参见Partial Requests in ASP.NET MVC) .希望对于实时性要求不高的内容区域采用客户端缓存来提升性能同时也弥补一下RenderAction对性能的损失. 使用asp.net m

Asp.net Mvc开发体会点滴 一

大家中秋快乐,^^,近几日较忙抽点时间把写了快一个星期的日志发出来下,下面有一些是实验验证,有一些的直观感觉,所以难免有错,希望众兄弟指正 以下是这些日子来使用Asp.net Mvc的部分心得与体会 何时使用Helper 其实使用Helper性能不是太高,能免即免,不过可以在以下场合使用 1.存在Url的地方 比如超级连接,Form的Action,图片的Src.因为开发者的UrlRouting可能变化,如果写死,改动成本较大 2.有表单,并且是修改信息的时候 因为<%=ViewData["

《Pro ASP.NET MVC 3 Framework》学习笔记之十三【示例项目SportsStore】

接着我们添加一个分页功能.修改ProductController,如下所示: public class ProductController : Controller {public int PageSize = 4;//后面会更改 private IProductsRepository repository;public ProductController(IProductsRepository productRepository) { repository = productRepositor

IIS6下部署ASP.NET MVC应用程序

通常在IIS6下部署ASP.NET MVC应用程序的时候,都是直接设置把所有请求都交由ASP.NET的ISAPI处理.MVC是基于ASP.NET的,框架默认对于任何请求都会优先检查物理路径是否存在物理文件,如果存在的话就不通过MVC的路由机制,否则才走路由. 因此,如果在不考虑控制静态资源权限的情况下,可以设置静态资源不通过ASP.NET的ISAPI,而直接由IIS处理,通过这种方式提升一些性能.本文围绕这个主题,详解部署过程. 0.在设计MVC网站的时候,把静态资源统一放在一个文件夹下,建议目

ASP.NET MVC中的视图生成简介

在 ASP.NET MVC 中,我们将前端的呈现划分为三个独立的部分来实现,Controller 用来控制用户的操作,View 用来控制呈现的内容,Model 用来表示处理的数据. 从控制器到视图 通常,在 Controller 中,我们定义多个 Action ,每个 Action 的返回类型一般是 ActionResult,在 Action 处理的最后,我们返回对于视图的调用. public ActionResult Index() {    return this.View(); } 默认情