• 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群进入交流。

  • 相关阅读:
    单点登录场景中的CAS协议和OAuth2.0协议对比
    https的URL参数传递中文乱码问题
    Goby
    Burp_suite安装及使用教程(专业版)
    IIS下配置php运行环境。
    iis强制使用https
    IIS-详解IIS中URL重写工具的规则条件(Rule conditions)
    树莓派鼓捣记
    树莓派鼓捣记
    WSL1 升级为 WSL2
  • 原文地址:https://www.cnblogs.com/pandait/p/NopCommerce_Menu_Create_Html.html
Copyright © 2020-2023  润新知