NopCommerce 導航選單HTML靜態處理以提高效能
因網站要快速上線,有時候NopCommerce效能問題一直是困擾我們的最大因素,查找出來需要優化的部分程式碼進行修改重構是方法之一,我等非主流優化方式只為快速提高程式整體效能。
我以導航選單為例,列出我們在開發中優化的方式。
在MVC中引入檢視的程式碼段:
@Html.Action("Menu", "Common")
當我們取資料發現執行速度太慢,我們就想著把內容給靜態快取起來就有了下面的程式碼:
1 @{ 2 string outHtml = string.Empty; 3 if (!File.Exists(Server.MapPath("~/staticmenu.html"))) 4 { 5 string content = Html.Action("Menu", "Common").ToString(); 6 using (StreamWriter writer = new StreamWriter(Server.MapPath("~/staticmenu.html"), false, System.Text.Encoding.UTF8)) 7 { 8 outHtml = content;9 writer.Write(content); 10 writer.Dispose(); 11 } 12 } 13 else 14 { 15 16 using (StreamReader sr = new StreamReader(Server.MapPath("~/staticmenu.html"), System.Text.Encoding.Default))17 { 18 outHtml = sr.ReadToEnd(); 19 sr.Dispose(); 20 } 21 } 22 } 23 @Html.Raw(outHtml)
在我們修改了分類相關內容的時候,我們需要刪除staticmenu.html檔案,我們是在後臺清除快取的方法中加了下面程式碼:
public ActionResult ClearCache() { if (!_permissionService.Authorize(StandardPermissionProvider.ManageMaintenance)) return AccessDeniedView(); var cacheManager = new MemoryCacheManager(); cacheManager.Clear(); //Panda更新 增加清除前臺導航快取 if (System.IO.File.Exists(Server.MapPath("~/staticmenu.html"))) { System.IO.File.Delete(Server.MapPath("~/staticmenu.html")); } return RedirectToAction("Index", "Home"); }
程式碼簡單,在第一次訪問的時候會慢。
收工。
歡迎大家加NopCommerce群進入交流。
相關推薦
NopCommerce 導航選單HTML靜態處理以提高效能
因網站要快速上線,有時候NopCommerce效能問題一直是困擾我們的最大因素,查找出來需要優化的部分程式碼進行修改重構是方法之一,我等非主流優化方式只為快速提高程式整體效能。 我以導航選單為例,列出我們在開發中優化的方式。 在MVC中引入檢視的程式碼段: @Html.Action("Menu",
瞭解JavaScript中的Memoization以提高效能,再看React的應用
英文: Understanding Memoization in JavaScript to Improve Performance 中文: 瞭解JavaScript中的Memoization以提高效能--react的應用(歡迎star) 我們渴望提高應用程式的效能,Memoization是JavaScr
Spring MVC 讓.html靜態檔案得到處理的方法
你的web.xml檔案在配置springmvc的時候可能是一個“/”攔截了所有請求,導致無法處理.html檔案 在springmvc-config.xml檔案中新增以下兩句: <mvc:default-servlet-handler/> <mvc:a
python處理html中的以開頭的編碼
亂碼格式類似‘图灵程序设计丛书’ 程式碼為: text='图
React中使用Ant Design 以Menu導航選單形式展示Tree樹形結構
<SubMenu key={item.nodeId} data-id={item.nodeId} data-privilege={item.privilege}
純HTML+CSS實戰之實現帶圖示的二級導航選單
效果圖如上 程式碼如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>純CSS實現帶圖示的二級導航選單</t
HTML/CSS導航選單-水平選單的製作
垂直選單改成水平菜單隻需要改幾個引數就可以了float:left; <!DOCTYPE html> <html> <head> <meta charse
HTML+CSS程式碼橙色導航選單
1 <!DOCTYPE html> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <title>超漂亮的HTML導航選單CSS程式碼 - 何問起</tit
純HTML+CSS帶說明的黃色導航選單
HoverTree帶說明的CSS選單:純HTML+CSS結構連結帶說明的黃色導航 <!DOCTYPE html > <html > <head> <title>HoverTree帶說明的CSS選單-hovertree.com</ti
純HTML+CSS3 導航選單
瀏覽器支援 IE9/GoogleChrome/FireFox/Safari 效果圖: html程式碼 <!DOCTYPE HTML> <html> <head> <title>純html+css3導航</titl
Html靜態網頁下載—Teleport Pro 1.68 官方原版
apple pan 進程 搜索網站 得到 ava span 靜態 地址 Teleport Pro 1.68 官方原版+有效註冊碼 – 下載整個網站 簡介 Teleport Pro由美國Tennyson Maxwell公司開發,曾被PC Magazine評為”編輯選擇
在炎熱的夏天學習以提高效率
這樣的 桌面 導致 inf 技術 net amp 你會 pan 夏天已到,火辣辣的太陽曬著大地,好像要把所有的東西都熔化掉似的。機器在不停地轉動著,在這樣的一個季節學習變得更加的艱辛了。 夏天會導致學習效率降低。 由太陽散發出的熱量會導致人們精神疲勞,因此在夏天適時稍作休
asp .net 模板引擎 使用 Razor 生成html靜態頁面
property efault index returns true getprop pattern exc lec 剛開始不是理解 寫完之後 覺得還蠻簡單的 分為這幾個步驟 1.獲取頁面模板Html 2.獲取數據 3.解析模板和數據,生成靜態頁Html代碼 4.生成靜態
spring mvc 偽靜態處理
comm variable ppi sha mman ger value class share spring mvc 偽靜態處理 @RequestMapping(value = JsonUrlCommand.webshare_get_opus
JS:Html事件處理程序 vs DOM0級事件處理程序 vs DOM2級事件處理程序
list 屬性 asc hello 並且 賦值 有意義 事件處理程序 自己 1.HTML事件處理程序 某個元素支持的某種事件,可以通過一個與相應事件處理程序同名的HTML特性指定。這個特性的值應該是能夠執行的JS代碼。例如:按鈕單擊是要執行一些js代碼,可以像下面: <
HTML事件處理程序
() ner false span element log 而且 按鈕 事件處理 ①:事件處理程序中的代碼執行時,有權訪問全局作用域中任何代碼。 //為按鈕btn_event添加了一個事件處理程序,而且該事件會在冒泡階段觸發(最後一個參數是false)。
mysql處理以逗號隔開的字段內容
翻譯 環境 經驗 from 壓力 body tar 處理 sql 有一個字段保存了CheckBox內容,比如職業目標選擇對於數據庫字段otWorkgoal,保存了1,2,3,4內容 現在需要使用純mysql語句,將字段otWorkgoal根據內容,進行翻譯成中文的內容。 可
NGINX-html靜態頁面Access Denied
cgi 查找 3.5 scrip clas err acc div html NGINX-html靜態頁面Access Denied,包括.js 和.png都無法顯示 more /var/log/nginx/error.log "fastcgi://127.0.0.1:90
ZBLOG系統PHP程序無法生成純HTML靜態網頁導致的2大缺陷
ZBLOG php 數據庫 最近在研究ZBLOG系統,其中有ASP版本,可以搭配ACCESS和MS-SQL數據庫,也都有生成HTML純靜態網頁文件的插件,雖然對於ZBLOG2.1-2.2的ASP版本來說,靜態化插件沒有及時更新,導致提交網頁後在後臺無法跳轉的小問題,但還是可以用的,目前來說,除了在
Abstract可以將子類的共性最大限度的抽取出來,放在父類中,以提高程序的簡潔性
return text int col 生效 void exp 需要 div Abstract可以將子類的共性最大限度的抽取出來,放在父類中,以提高程序的簡潔性。 Abstract雖然不能生成對象,但是可以聲明,作為編譯時類型,但不能作為運行時類型。 Final和abstr