[英]Bundling and minifying modular JavaScript (RequireJS / AMD) with ASP.NET MVC
[英]Starting an ASP.NET MVC 4 project. Is it necessary to use RequireJS if I'm using bundling?
我對捆綁和RequireJS都非常陌生,但是經過一番閱讀之后,捆綁似乎可以處理多個請求以加載多個js文件。 關於將RequireJS與捆綁一起使用,我還有其他可能錯過的事情嗎?
如果要使用MVC 4,建議您使用捆綁軟件。
使用捆綁軟件,您可以定義一組腳本,這些腳本將在瀏覽器中呈現,這取決於您是調試還是生產環境。
為了檢測您是否處於調試狀態,必須在web.config文件中更改以下設置
<compilation debug="true">
如果要調試,則Bundle引擎會將所有腳本呈現為單獨的標記。
如果您不進行調試,則Bundle引擎將僅呈現一個標記,並且當前bundle引用的所有腳本都將合並到一個單獨的JS文件中
捆綁軟件還使用約定來檢測應呈現的腳本文件
例如,對於JQuery
JQuery腳本文件如下所示:
jQuery的1.8.2.js
jQuery的1.8.2.min.js
聲明捆綁包時,您可以這樣做:
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
請注意,您未指定文件名的版本或.min部分,因為這是捆綁引擎在選擇正確文件時將考慮的特殊標記。
每當您使用指定的路徑引用包時,包引擎都會對其進行處理,並且它將選擇正確的腳本文件,例如:
如果進行調試,將呈現jquery-1.8.2.js文件
如果不調試,將呈現jquery-1.8.2.min.js
在此示例中,捆綁包的名稱為: ~/bundles/jquery
,您將在頁面上這樣引用:
@Scripts.Render("~/bundles/jquery")
如果捆綁軟件中包含更多腳本,則相同的規則適用於所有腳本。
考慮此捆綁包注冊
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*"));
如果進行調試,這將是呈現的HTML
<script src="/Scripts/jquery.unobtrusive-ajax.js"></script> <script src="/Scripts/jquery.validate.js"></script> <script src="/Scripts/jquery.validate.unobtrusive.js"></script>
如果不調試,將呈現:
<script src="/bundles/jqueryval?v=6Fqs6ZHMM_nFyDgv5mxz89PzsVLAnRNKOhqrK-mI5yU1"></script>
該鏈接將包含所有合並的腳本文件,從而使頁面加載速度更快,因為所有腳本都將由瀏覽器一鍵下載。
有關更多信息, 請參見ASP.NET 4.5的新功能。
RequireJS是合適的,對於實現JavaScript重UI的項目,有些人可能說是必需的。
多個請求並不總是一件壞事。 最重要的是,您選擇的解決方案會隨着項目的增長而擴展。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.