短い答え
メモリ。しかし、ブラウザがすでにクライアントに情報をキャッシュしていることも覚えておいてください。
それはBundling and Minificationページに言われていますよう長い答え、すべての
まず、バンドルがブラウザによってキャッシュされます:あなたは、バンドル内の1つのファイルを更新したら
、新しいトークン バンドルクエリ文字列パラメータに対して生成され、次にクライアントがバンドルを含むページを要求すると、フルバンドルがダウンロードされます。 各アセットが個別に表示される従来のマークアップでは、変更されたファイル のみがダウンロードされます。頻繁に変更される資産は、 がバンドルに適していない可能性があります。
バンドルおよび縮小は、主に最初のページ要求の読み込み時間を改善します。 ウェブページがリクエストされると、ブラウザはアセット(JavaScript、 CSSおよびイメージ)をキャッシュに格納し、バンドルとミニネーションでは同じページをリクエストするときにはパフォーマンスが向上しません。同じサイトのページ は同じアセットをリクエストします。有効期限ヘッダー を資産に正しく設定せず、バンドルと縮小を使用しない場合は、 ブラウザの最新性の発見ツールでは 日後に資産が失効とマークされ、ブラウザはそれぞれに対して検証要求を要求します 資産
そしてまた、彼らはフィドラーでテストし、同じページから撮影した画像に、ここに示す:
それがブラウザによってキャッシュされたとして、これまでのところ、我々は安全です。
しかし、私は少しさらに行って、コントローラでこのコードの小さなテストプロジェクトを作成:ビューの
public ActionResult Index()
{
return View(HttpRuntime.Cache);
}
そして、このコード:
<p>
@Html.DisplayForModel()
</p>
私に次を与えました結果:
最初の実行:
:ViewCacheEntry:System.Web.Mvc.RazorViewEngine, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35:View:Index:Home:::__AppStartPage__~/_appstart.cshtml
:ViewCacheEntry:System.Web.Mvc.RazorViewEngine, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35:View:Index:Home::Mobile:__AppStartPage__~/_appstart.vbhtml
セカンドラン:modernizr、ブートストラップ、jQueryとCSS(!私のバンドル)がキャッシュ内にある、あなたが表示されますセカンドランで
:ViewCacheEntry:System.Web.Mvc.RazorViewEngine, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35:Partial:_LoginPartial:Home::Mobile:
:ViewCacheEntry:System.Web.Mvc.RazorViewEngine, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35:View:Index:Home:::System.Web.Optimization.Bundle:~/bundles/modernizr
:ViewCacheEntry:System.Web.Mvc.RazorViewEngine, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35:Partial:_LoginPartial:Home:::System.Web.Optimization.Bundle:~/bundles/bootstrap__AppStartPage__~/_appstart.cshtml
:ViewCacheEntry:System.Web.Mvc.RazorViewEngine, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35:View:Index:Home::Mobile:System.Web.Optimization.Bundle:~/bundles/jquerySystem.Web.Optimization.Bundle:~/Content/css__AppStartPage__~/_appstart.vbhtml
。我々は2つの異なるブラウザで同じページをロードした場合私たちも離れて5minsをロードされた後、同じクエリ文字列を取得する理由は説明するだろう:
- エッジ:
- のFirefoxのDev版:
を
https://technet.microsoft.com/en-us/sysinternals/bb896645を試して、いつ/ cssファイルがヒットするかを確認することができます。 –
ありがとう、私はprocmonを忘れていました。ある特定の.jsファイルに対してprocmonを見てもわかりませんでした。バンドルが有効になっていると、ファイルが変更されたことを.NETがどのように認識していたのかは明らかではありませんでした(バージョンハッシュを更新します)。クライアント側で動作が異なります。次のステップ私はILSpyを使ってコードに潜入していると思います。私は興味がありますが、元の答えを得ました。ありがとうございました – nothingisnecessary