簡體   English   中英

Asp.Net MVC在響應期間合並和刪除內聯腳本

[英]Asp.Net MVC Combine and remove inline scripts during response

我一直在一些我正在工作的網站上進行性能分析,我注意到一個大問題是內聯腳本。 對於外部腳本,我編寫了一個http處理程序,該處理程序將javascript合並,最小化和gzip壓縮到一個文件中。 然后將其存儲起來,以供以后通過對文件名進行哈希處理再使用。

我想知道(不確定這是否是一個好主意,但我發布是為了得到一些反饋)是我是否刪除其中包含腳本文本的所有腳本元素並將它們組合到一個文件中。 然后,我使用與外部腳本相同的過程,並將它們組合為一個腳本。

約翰

內聯腳本始終進入頁面內部,因此每條帖子都需要遍歷該內聯腳本,或者往返於服務器。 由於您使用的是MVC,因此在項目中僅包含非干擾性的腳本文件非常容易,因為您對呈現的html有相當多的控制權。

您還想簽出SquishIt

格里斯,克里斯。

可以縮小內聯JavaScript並將其與外部文件捆綁在一起。

正如我在這里提到的,在為ASP.net構建期間縮小嵌入式JavaScript?

使用模板化的Razor幫助器,您可以創建一種擴展方法,如下所示:

 public static MvcHtmlString AddScriptSource(this HtmlHelper helper, Func<dynamic, HelperResult> source, string key) { string scriptSource = source(null).ToHtmlString(); // Cache scriptSource here return MvcHtmlString.Empty; } 

您將這樣使用:

 @Html.AddScriptSource(@<text>$(document).ready(function() { $('h1').text('The current controller is @ViewContext.RouteData.Values["controller"].ToString()'); });</text>, "test") 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM