最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解ASP.NET Core 中間件之壓縮、緩存

 更新時間:2016年12月13日 15:48:29   作者:楊曉東  
本篇文章主要介紹了ASP.NET Core 中間件之壓縮、緩存,具有一定的參考價值,感興趣的小伙伴們可以參考一下。

前言

今天給大家介紹一下在 ASP.NET Core 日常開發(fā)中用的比較多的兩個中間件,它們都是出自于微軟的 ASP.NET 團隊,他們分別是Microsoft.AspNetCore.ResponseCompressionMicrosoft.AspNetCore.ResponseCaching , 下面讓我們一起看看的功能以及如何去使用吧。

Getting Started

Microsoft.AspNetCore.ResponseCompression

Microsoft.AspNetCore.ResponseCompression 這個中間件是 .NET Core 1.1 版本中新增加的,看名字應該知道,它主要是負責對輸出的內容進行壓縮, 那么在我們WEB開發(fā)中主要就是 GZip 壓縮了。

Gzip 壓縮是我們在 WEB 中經(jīng)常會使用的一項性能優(yōu)化技術,它可以對頁面輸出的內容使用壓縮算法(GZip)進行體積的壓縮, 那在以前的時候,我們可以使用 IIS 來做這項工作,但是現(xiàn)在我們的程序脫離 IIS了,就必須有一個中間件來幫我們做這件事情了,它就是我們要介紹的這個中間件。

1、添加 Microsoft.AspNetCore.ResponseCompression 包

你可以使用 Visual Studio 打開 NuGet 包管理器控制臺輸入一下命令安裝

Install-Package Microsoft.AspNetCore.ResponseCompression

也可以使用 NuGet包管理器UI界面安裝。

添加完成之后,你就可以在 project.json 中看到你添加的包了。注意目前版本是 1.0.0.

2、更新 Startup.cs 文件

修改 Startup , 在ConfigureServices 和Configure 兩個方法中添加如下代碼:

public class Startup
{
  ...
 
  public void ConfigureServices(IServiceCollection services)
  {
    services.AddResponseCompression();
    
    ...
  }
 
  public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
  {
    app.UseResponseCompression();
    
    ...
  }
}

現(xiàn)在你就可以測試一下輸入的 Http Response 是否被壓縮了。

前:

后:

通過 前 后 對比,可以看出來,在 Response Headers 里面多了一個 Content-Encoding:gzip 的頭部信息,說明我們的中間件生效了。

Microsoft.AspNetCore.ResponseCaching

Microsoft.AspNetCore.ResponseCaching 這個中間件也是 .NET Core 1.1 版本中新增加的,同樣看名字應該知道,它主要是負責對輸出的內容進行緩存設置。在以前我們可以同樣在 IIS 中設置這些東西,但是粒度可能并沒有這么細。

我之前寫過一篇關于 ASP.NET Core 緩存的文章,里面介紹了 ASP.NET Core MVC 中的 Response 緩存,它是通過一個 ResponseCacheAttribute 來實現(xiàn)的設置緩存頭信息:

[ResponseCache(VaryByHeader ="Accept-Encoding", Location = ResponseCacheLocation.Any, Duration = 10)]
public IActionResult About()
{
}

那,除了 MVC 提供的 ResponseCacheAttribute 外,還有另外一種方式設置緩存頭信息,如下:

public IActionResult About()
{
  Response.GetTypedHeaders().CacheControl = new CacheControlHeaderValue()
  {
    Public = true,
    MaxAge = TimeSpan.FromSeconds(10)
  };
  Response.Headers[HeaderNames.Vary] = new string[] { "Accept-Encoding" };
}

這兩種方式,最終的效果是一致的。

有了這些頭信息之后,我們就可以在服務端里面這個中間件干些什么事情了。所以,該中間件將會在適當?shù)臅r候讀取這些頭信息,然后緩存到本地緩存里面,當再有請求進來的時候會直接跳過action,讀取緩存信息進行返回。

下面,我們一起來看看怎么樣添加到我們的項目中吧,很簡單。

1、添加 Microsoft.AspNetCore.ResponseCaching 包

你可以使用 Visual Studio 打開 NuGet 包管理器控制臺輸入一下命令安裝

Install-Package Microsoft.AspNetCore.ResponseCaching

2、更新 Startup.cs 文件

修改 Startup , 在ConfigureServices 和Configure 兩個方法中添加如下代碼:

public class Startup
{
  ...
 
  public void ConfigureServices(IServiceCollection services)
  {
    services.AddResponseCaching();
    
    ...
  }
 
  public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
  {
    app.UseResponseCaching();
    
    ...
  }
}

輸入的頭信息如下:

詳細示例可以看這里.

注意:上面的示例在 Chrome 瀏覽器中,當你按 F5 或者右鍵刷新頁面時候, Http Response Header 中的 Control-Cache: max-age 有時候可能會不生效,這是因為 Chrome 瀏覽器有很智能的算法來猜測你當前的行為是真的想刷新還是取緩存。 所以你可以試著把你的地址放入到一個HTML的Link中或者新開一個選項卡鍵入地址嘗試。而Edge和IE瀏覽器行為是符合預期的。

總結

以上是這兩個中間件的功能及使用方法,很簡單,就不多說了,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • ASP.Net分頁的分頁導航實例

    ASP.Net分頁的分頁導航實例

    本文介紹了ASP.Net分頁的分頁導航實例,這里整理了詳細的代碼,有需要的小伙伴可以參考下。
    2016-10-10
  • 透過ashx看瀏覽器服務器運行本質(圖解)

    透過ashx看瀏覽器服務器運行本質(圖解)

    一般處理程序(HttpHandler):是一個實現(xiàn)System.Web.IHttpHandler接口的特殊類。任何一個實現(xiàn)了IHttpHandler接口的類是作為一個外部請求的目標程序的前提,感興趣的朋友可以了解下或許有所幫助
    2013-01-01
  • ASP.NET MVC @Helper輔助方法和@functons自定義函數(shù)的使用方法

    ASP.NET MVC @Helper輔助方法和@functons自定義函數(shù)的使用方法

    本文主要介紹ASP.NET MVC中使用@Helper和@functons自定義一些代碼片段,方便視圖調用,從而達到減少重復代碼,快速開發(fā)的目的,希望對大家有所幫助。
    2016-04-04
  • .NetCore之接口緩存的實現(xiàn)示例

    .NetCore之接口緩存的實現(xiàn)示例

    這篇文章主要介紹了.NetCore之接口緩存的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • Entity?Framework使用Fluent?API配置案例

    Entity?Framework使用Fluent?API配置案例

    本文詳細講解了Entity?Framework使用Fluent?API配置案例的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • 利用VS2019創(chuàng)建Web項目并發(fā)送到IIS及IIS與ASP.NET配置教程

    利用VS2019創(chuàng)建Web項目并發(fā)送到IIS及IIS與ASP.NET配置教程

    這篇文章主要介紹了利用VS2019創(chuàng)建Web項目,并發(fā)送到IIS,以及IIS與ASP.NET配置,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • .NET性能優(yōu)化之為集合類型設置初始大小的方法

    .NET性能優(yōu)化之為集合類型設置初始大小的方法

    這篇文章主要介紹了.NET性能優(yōu)化之為集合類型設置初始大小的方法,今天要談的一個性能優(yōu)化的Tips是一個老生常談的點,但是也是很多人沒有注意的一個點。在使用集合類型是,你應該設置一個預估的初始大小,那么為什么需要這樣做?我們一起來從源碼的角度說一說
    2022-05-05
  • Asp.Net套用母版頁后元素ID不一致(個人總結)

    Asp.Net套用母版頁后元素ID不一致(個人總結)

    這篇文章主要介紹了Asp.Net套用母版頁后元素ID不一致(個人總結),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • 詳解asp.net core重新加載應用配置

    詳解asp.net core重新加載應用配置

    這篇文章主要介紹了asp.net core重新加載應用配置,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • .Net通過TaskFactory.FromAsync簡化APM

    .Net通過TaskFactory.FromAsync簡化APM

    這篇文章介紹了.Net通過TaskFactory.FromAsync簡化APM的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06

最新評論

怀集县| 且末县| 兴安县| 长沙县| 额尔古纳市| 平和县| 合川市| 遵化市| 宜黄县| 镇原县| 棋牌| 张北县| 溧水县| 桐乡市| 桐梓县| 得荣县| 哈密市| 略阳县| 平昌县| 醴陵市| 靖西县| 龙州县| 四会市| 巩义市| 邮箱| 武穴市| 杭锦旗| 昭觉县| 会昌县| 彰化县| 齐齐哈尔市| 闸北区| 黑水县| 舞钢市| 永善县| 沛县| 望都县| 莲花县| 绥德县| 武邑县| 崇礼县|