網站首頁 編程語言 正文
概述
在ASP.Net中可以使用打包與壓縮這兩種技術來提高Web應用程序頁面加載的性能。通過減少從服務器請求的次數和減少資源文件的體積來提高加載性能。
- 打包是一地將多個文件(CSS,JavaScript等資源文件)合并或打包到單個文件。文件合并可減少了 Web 資源文件從服務器的所需請求數,這樣也可提高頁面載入的性能。
- 壓縮是將各種不同的代碼進行優化,以減少請求資源文件的體積。壓縮的常見方法刪除不必要的空格和注釋,并將變量名縮減為一個字符。
例如下面JavaScript函數:
AddAltToImg = function (imageTagAndImageID, imageContext) { ////// var imageElement = $(imageTagAndImageID, imageContext); imageElement.attr('alt', imageElement.attr('id').replace(/ID/, '')); }Adds an alt tab to the image // //The image selector. //The image context. ///
壓縮后,函數簡化為如下:
AddAltToImg=function(t,a){var r=$(t,a);r.attr("alt",r.attr("id").replace(/ID/,""))};
除了刪除注釋和不必要的空格之外,參數和變量名稱被重命名(縮寫)如下:
原始名稱 | 重命名后 |
---|---|
imageTagAndImageID | t |
imageContext | a |
imageElement | r |
此示例來自于github:https://github.com/aspnet/Docs/blob/master/aspnetcore/client-side/bundling-and-minification.md
bundleconfig.json文件
MVC項目模板提供了一個bundleconfig.json
配置文件,它定義了打包的配置選項。默認情況下,實現了自定義腳本文件(wwwroot/js/site.js) 和樣式表 (wwwroot/css/site.css) 文件的配置。
[ { "outputFileName": "wwwroot/css/site.min.css", "inputFiles": [ "wwwroot/css/site.css" ] }, { "outputFileName": "wwwroot/js/site.min.js", "inputFiles": [ "wwwroot/js/site.js" ], "minify": { "enabled": true, "renameLocals": true }, "sourceMap": false } ]
配置選項詳細說明:
- outputFileName - 要輸出打包包文件的路徑。 與
bundleconfig.json
?文件的相對路徑。?必填 - inputFiles - 要打包的的文件路徑數組。 與是配置文件的相對路徑。?選填,如果是空數組會輸出一個空文件。 支持通配符模式。
- minify - 輸入出類型的壓縮選項。?選填,默認值 -
minify: { enabled: true }
- 輸入出文件類型可用配置選項。
- CSS Minifier
- JavaScript Minifier
- HTML Minifier
- 輸入出文件類型可用配置選項。
- includeInProject - 將生成的文件添加到項目。?選填,?默認值 - false
- sourceMaps - 生成合并文件的源文件映射。?選填,默認值 - false
在項目中使用打包和壓縮
在VS 2015/2017需要安裝BundlerMinifierVsix?,安裝完成后需要重啟VS。
在bundleconfig.json
文件右鍵單擊,然后選擇任務運行程序資源管理器。
在Update all fiels
選項右鍵單擊,然后選擇Run。
在項目中會分別生成壓縮后的資源文件。
在視圖中使用打包壓縮后的資源文件
在上一篇博客《ASP.NET Core配置環境變量和啟動設置》我們已經討論過環境變量,在視圖中通過 Environment 標簽,分別定義開發、預演和生產環境加載對應的資源文件。
當在開發模式下運行應用程序,我們使用未壓縮Css和腳本文件;在生產環境中,我們壓縮后的資源文件,這樣可以提高應用程序的性能。
總結
在ASP.Net中可以使用打包與壓縮這兩種技術來提高Web應用程序頁面加載的性能。
原文鏈接:https://www.cnblogs.com/tdfblog/p/bundling-and-minification-in-asp-net-core.html
相關推薦
- 2022-06-09 教你在k8s上部署HADOOP-3.2.2(HDFS)的方法_云其它
- 2022-07-07 Python編寫運維進程文件目錄操作實用腳本示例_python
- 2022-05-05 C#?模式匹配完全指南_C#教程
- 2022-01-19 webpack5 配置熱更新失效問題
- 2022-08-04 Python+NumPy繪制常見曲線的方法詳解_python
- 2023-10-16 清理linux日志
- 2022-07-12 用戶手抖,連續點了兩次?優雅解決表單重復提交
- 2022-11-23 Python字典高級用法深入分析講解_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支