返回顶部
首页 > 资讯 > 数据库 >ASP.NET MVC 应用提速的十种方法
  • 316
分享到

ASP.NET MVC 应用提速的十种方法

2024-04-02 19:04:59 316人浏览 泡泡鱼
摘要

【编者按】本文作者为 DZone 社区的最具价值博主(MVB) Jonathan Danylko,主要介绍为 asp.net mvc 应用提速的十种方法。由国内 IT

【编者按】本文作者为 DZone 社区的最具价值博主(MVB) Jonathan Danylko,主要介绍为 asp.net mvc 应用提速的十种方法。由国内 ITOM 管理平台 OneAPM 编译呈现,以下为正文。

每个人都想快速掌握最新消息。

我是说,人们恨不得预知第二天的头条。没有人喜欢等待。

排队等待,遇到红灯要等待,开个网页要等待,等等等。

理所当然,没有人喜欢等待网页慢吞吞地加载,尤其是在移动端访问网站时。其实,WEB 开发者敏感的神经决定了我们等待与否。

现在,快速响应不仅是来自用户的要求,还是决定 Google 搜索排名的主要因素。除此之外,Google 还大力推行 Google AMP 计划,以使网站加载更加快速。

考虑到大多数网站都存在速度方面的问题,笔者想通过此文帮助 Microsoft 开发者优化他们的网站。

在本文中,笔者将介绍十种为 ASP.net MVC 应用提速的方法。

1. 应用程序缓存

缓存一直都是优化应用时屡试不爽的最后绝招。只要使用得当,缓存绝对可以有效加速应用。

在进行数据库调用以检索记录时,正是实现应用程序缓存的最佳时机。

譬如说,你搭建了一个博客。当访客请求某一篇博文时,你将其从数据库中检索出来,保存在缓存中。当下一个访客通过 ID 请求同一篇博文时,应用程序会首先根据 ID 在缓存中寻找博文,如果找到,就将之返回给访客,而无需访问数据库。

这节省了数据库调用的高昂开支。

延伸阅读:通过添加简单的缓存层以实现高效快速的网站

2. 优化图片

之前,笔者从未了解过图片在一篇博文中会占据多大比重。有时候,取决于文章内容的不同,图片可能会是一篇博文中最大的资源。

你应该压缩这些庞大的资源。图片越小,网页渲染的速度越快。

Image Optimizer(图片优化)插件是很有用的 Visual Studio 插件。选定你的所有图像,再选择无损(Lossless)或者有损(Lossy)图片优化模式,每张图片都会根据一定的比率压缩大小。

此外,如果你掌握了 Grunt 或 Gulp 之类的前端客户端工具,就可以在创建应用或者部署应用时自动实现图片优化。

延伸阅读:Visual Studio 2015 图片优化插件

3. 使用 Sprites

每个网站都有图片。图片几乎是必不可少的网站元素。

但是,如果你有很多小图片,该如何处理呢?假设有20张小图片,那就是20次图片检索请求,每张图片一次。

这时候,Sprites 就能派上用场啦。

Sprites 是由众多小图片集合而成的一张大图。浏览器可以直接请求这张大图,你再通过 CSS 技术抓取其中的小图片,并将其展示在网页的不同位置上。

我知道,很多开发者并不熟悉 CSS。因此,建议大家找点资料好好学习一下。CSS 真的非常有用。

此外,还有许多在线 sprite 生成器,可以协助这一过程。(Piskel, Sprite Cow, 或者谷歌搜索:“在线 Sprite 生成器”)

延伸阅读:ASP.NET MVC:数据驱动 CSS Sprites

4. ETags

有些读者可能不知道 ETags 为何物。其实,ETags 是用于 Web 缓存验证的工具,允许有条件的客户端请求。

通过 ETags,浏览器可以判断某项资源是否被需要。如果不需要,浏览器就不会向 Web 服务器发送请求,从而最小化请求数量。

笔者甚至将 ETag ActionFilter 类列为最喜欢的 ActionFilter 类,因为 ETags 的确能最小化网站向 Web 服务器发送的请求数量。

延伸阅读:我最喜欢的五个 ASP.NET MVC ActionFilters

5. 捆绑或最小化 javascript/CSS 代码

捆绑与最小化早已不是什么新鲜的概念了。

捆绑是指将所有 JavaScript 与 CSS 代码打包为一个 JavaScript 或 CSS 文件的过程。这与 Sprite 技术相似,不过处理的是 JavaScript 与 CSS 文件。捆绑可以减少针对单独 JavaScript 与 CSS 文件的请求,从而减少成本。

JavaScript 与 CSS 文件充满了空格,这些空格占用了不少的空间。最小化就是移除 JavaScript 或 CSS 文件里的大量空格的过程。

在 ASP.NET MVC 项目中, App_Start 文件夹下有一个 BundleConfig.cs 文件。你可以在该文件中定义 JavaScript 与 CSS 文件的捆绑或最小化设置。

延伸阅读:捆绑与最小化

6. 压缩

你发觉我们的套路了么?

实现压缩的方式有两种:一是通过 IIS 激活压缩,二是通过 ActionFilter 类。

压缩启用后,Web 服务器会将资源压缩成包,再传给客户端。后者会先解压缩,然后再展示内容。

这能有效提高资源传送的速度。

笔者还为此写了一个 CompressFilter 类。通过 Action 方法调用该类,就能实现对网页的压缩。

延伸阅读:我最喜欢的五个 ASP.NET MVC ActionFilters

7. 最小化 html

在前文讨论最小化时,笔者不禁想到,你的 HTML 页面肯定也存在了许多空格。

HTML 文件越小,它传送到浏览器的速度就越快。取决于 HTML 页面大小的差异,移除其中的空格能够缩减 20%到50%的大小。

为此,笔者写了一个 Whitespace ActionFilter 类,也是笔者最喜欢的 ActionFilter 类之一。

延伸阅读:我最喜欢的五个 ASP.NET MVC ActionFilters

8. 尽量使用 ajax

AJAX 早已推出,而且好处多多。它模糊了桌面应用与 Web 应用间的界限。

它也绝对可以加速网站中的一些任务。

例如,笔者在自己的网站中建立了一个仪表盘。

在具体实现时,我可以先让页面加载一个仪表盘骨架。在页面加载完毕之后,开始运行 JavaScript 方法,请求小部件的加载。在之后会出现小部件的地方,可以先放置等待加载的图标。当部件加载完毕之后,再以部件的内容替换等待加载的图标。

这能使用户的浏览体验更加流畅。

延伸阅读:为什么说 AJAX 如同胡椒粉

9. 最小化数据库调用

诸如 Entity Framework 及 NHibernate 之类的对象关系映射(Object-Relational Mapping, ORM)数据库能够进行隐式调用(hidden calls),即便你从未要求过此类调用。

每一种 ORM 数据库都有许多鲜为人知的“陷阱”。但是,你可以做到的是:确保在自己的代码中,每次检索数据都只发起一次数据库调用。

当笔者刚开始使用 Entity Framework 数据库时,曾吃过不少亏。比如,为了检索一条特定的记录,我发起了一次数据库调用。在检索该记录时,程序发现了该记录的子对象,于是决定检索这些子对象,为此,针对每个实体,又都发起了一次数据库调用(有时候,为了一条特定记录,居然会产生200次数据库调用,真是可怕!)……

现在,笔者的经验法则是:

  • 确定需要一条记录,还是多组记录。

  • 如果只需要一条记录,则使用存储库(repository)获取此记录。

  • 如果需要不止一条或多组记录,则使用 sproc(存储过程,Stored Procedure)。

如果你不太确定如何获取多个结果集,可以阅读有关使用 Entity Framework 检索多个结果集的帖子。

延伸阅读:ASP.NET MVC: 使用 Entity Framework 从泛型存储库中返回多个结果集

10. 尽可能使用靠谱的第三方服务

记得在前文中我说的尽量使用 AJAX 么?

基于同样的理由,我决定放弃创建自定义的评论系统,转而使用 Disqus。

为什么呢?理由有五个:

  • Disqus 是免费的。

  • Disqus 只需要一小段 JavaScript 代码和基本存取方法(Basic Access Method, 
    BAM),就能立即实现一个评论系统。

  • 部署成功后,网页会优先加载,而 Disqus 在后台加载。通常,由于评论部分往往位于页面底部,用户刚打开页面时还不会看到评论部分。

  • Disqus 在移动端加载时也很友好。

  • Disqus 带有一些社交网络属性,允许用户看到关于 Disqus 网站上的文章评论。

这类第三方服务不仅能为我的网站提供常见的基本功能,还借助 AJAX 为我的读者实现了流畅的阅读体验。

延伸阅读:Disqus

结论

本文介绍的绝大部分速度提升方法都需要特定的编程技巧。一旦掌握了这些技巧,你就能轻易实现高效快速的网站。

以上所有技术都应用在笔者的网站中。

你不信?

右键单击以查看本文源码

OneAPM 能助您轻松定 .NET 应用性能瓶颈,通过强大的 Trace 记录逐层分析,直至锁定行级问题代码。以用户角度展示系统响应速度,以地域和浏览器维度统计用户使用情况。想阅读更多技术文章,请访问 OneAPM 官方博客。 
本文转自 OneAPM 官方博客 
原文地址:https://dzone.com/articles/10-ways-to-speed-up-your-aspnet-mvc-application


您可能感兴趣的文档:

--结束END--

本文标题: ASP.NET MVC 应用提速的十种方法

本文链接: https://lsjlt.com/news/41353.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • ASP.NET MVC 应用提速的十种方法
    【编者按】本文作者为 DZone 社区的最具价值博主(MVB) Jonathan Danylko,主要介绍为 ASP.NET MVC 应用提速的十种方法。由国内 IT...
    99+
    2024-04-02
  • ASP.NET MVC 如何使用索引提高响应速度?
    在处理大量数据时,ASP.NET MVC 应用程序可能会变得非常缓慢,这可能会降低用户体验并导致用户流失。为了解决这个问题,可以使用索引来提高 ASP.NET MVC 应用程序的响应速度。在本文中,我们将探讨什么是索引以及如何在 ASP....
    99+
    2023-08-12
    索引 响应 spring
  • Asp.net MVC 中Ajax的使用方法
    本篇内容介绍了“Asp.net MVC 中Ajax的使用方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!...
    99+
    2024-04-02
  • ASP.NET MVC使用异步Action的方法
    在没有使用异步Action之前,在Action内,比如有如下的写法: public ActionResult Index() { CustomerHelper cHelper...
    99+
    2022-11-13
    ASP.NET MVC 异步Action
  • 如何使用 ASP.NET MVC 中的索引和响应式设计来提高响应速度?
    ASP.NET MVC 是一种非常流行的框架,可以帮助我们构建响应式的 Web 应用程序。在本文中,我们将探讨如何使用 ASP.NET MVC 中的索引和响应式设计来提高响应速度。 索引是一种非常重要的概念,它能够帮助我们在数据库中快速查找...
    99+
    2023-08-11
    索引 响应 spring
  • ASP.NET MVC框架的使用方法是什么
    ASP.NET MVC框架的使用方法如下:1. 创建ASP.NET MVC项目:打开Visual Studio,选择“创建新项目”,...
    99+
    2023-10-10
    ASP.NET MVC
  • 在ASP.NET Core Mvc集成MarkDown的方法
      这几天在做文章编辑,首先就想到了markdown,它比其它的都要新,而且很好用,相对于其它的html编辑器,好久不更新,要好得多,哦~对了我现在已经用上新版的Edge了,经...
    99+
    2022-06-07
    net ASP.NET 方法 MVC Markdown core ASP
  • JavaScriptSpreadSyntax(...)的十种使用方法
    目录前言1、复制一个数组2、复制一个对象3、将元素添加到数组的开头或结尾4、合并数组5、合并对象6、 将字符串转换为数组7、 将类数组对象转换为数组8、提取对象9、无限参数的函数10...
    99+
    2024-04-02
  • ASP.NET Core MVC路由(Routing)的用法
    目录1.设置路由中间件2.常规路由3.多路由1.回退2.行动歧义3.路由名称4.路由特性5.组合路由6.特性路由的顺序7.路由模板中的标记替换( [controller] , [ac...
    99+
    2024-04-02
  • ASP.NET MVC EF连接数据库的方法
    这篇“ASP.NET MVC EF连接数据库的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看...
    99+
    2024-04-02
  • ASP.NET MVC中的路由原理与用法
    目录一、概述二、路由原理1、注册路由2、路由匹配2.1、匹配方式一2.2、匹配方式二2.3、匹配方式三3、URL参数默认值3.1、参数默认值一3.2、参数默认值二3.4、参数默认值三...
    99+
    2024-04-02
  • 十二个提高XP系统开机速度的方法
    很多的用户对于XP系统启动速度慢的情况,都会使用好的优化软件,来提高开机的速度。但是用了优化软件优化开机速度确还不满意开机速度时候,也可以尝试以下几种方法来提高开机速度: 1.首先是硬件配置。这点往往让忽略。其实硬件配置...
    99+
    2023-06-05
    XP系统 开机速度 开机 速度 XP 方法
  • ASP.NET MVC基于异常处理的解决方法
    今天就跟大家聊聊有关ASP.NET MVC基于异常处理的解决方法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。EntLib的异常处理应用块(Exception Handling Ap...
    99+
    2023-06-17
  • ASP.NET Core MVC中的标签助手(TagHelper)用法
    1.什么是标签助手 Tag Helper 标签助手是服务端代码能够参与在 Razor 文件中创建和呈现HTML元素。例如,内置的 ImageTagHelper 可以将版本号追加到图像...
    99+
    2024-04-02
  • 电脑开机速度慢怎么办快速提速的5种方法
    1. 清理系统垃圾文件:使用系统自带的磁盘清理工具或第三方清理工具,删除临时文件、缓存文件等系统垃圾文件,释放硬盘空间。2. 禁止开...
    99+
    2023-09-15
    电脑
  • 电脑开机速度慢怎么办?快速提速的5种方法
    1. 清理开机启动项:打开任务管理器,点击“启动”选项卡,禁用一些不必要的程序,减少开机时的负担。2. 清理硬盘空间:删除不需要的文...
    99+
    2023-08-08
    电脑
  • ASP.NET轻量级MVC框架Nancy的基本用法
    模块 Nancy的模块的概念类似于Asp.net中的Controller,一个典型的示例如下:  public class Module : NancyModule { ...
    99+
    2024-04-02
  • ASP.NET Core设置URLs的五种方法
    目录前言URL格式前提条件方法1 使用环境变量方法2 使用命令行参数方法3 使用配置文件方法4 使用UseUrls方法5 使用Kestrel优先级总结前言 在使用ASP.NET Co...
    99+
    2024-04-02
  • Pandas内置的十种画图方法
    目录 前言画图类型面积图(area)条形图(bar)水平条形图(barh)箱线图(boxplot)密度图(density)六边形图(hexbin)直方图(hist)折线图(...
    99+
    2024-04-02
  • (asp.net c#)DropDownList绑定后显示对应的项的两种方法
    方法一: 实现代码 复制代码 代码如下: DropDownList1.DataSource = listSort; DropDownList1.DataTextField = "Lo...
    99+
    2022-11-21
    DropDownList 绑定
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作