zoukankan      html  css  js  c++  java
  • 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群进入交流。

  • 相关阅读:
    NLP 基础问题及解析
    linux 命令精简
    linux 文件属性及操作
    linux 文件编辑命令vim
    NLP attention 简述
    数据结构
    2020 走进新时代
    条件随机场CRF 摘要
    linux的jdk、tomcat、tomcat安装等
    VMware所在磁盘满了、linux中date修改、ssh、eclipse的使用问题等
  • 原文地址:https://www.cnblogs.com/pandait/p/NopCommerce_Menu_Create_Html.html
Copyright © 2011-2022 走看看