精华内容
下载资源
问答
  • 书归正传,今天我带来一个Static静态成员的缓存,其实它也不是什么缓存,就是C#语言的一个特性,静态成员在被初始化后它将不会再被执行,即,他里面的内容只会被执行一次,直到你的网站被重启后(只考虑在单线程...

    今天写缓存篇的第一篇文章,在写完目录后,得到了一些朋友的关注,这给我之后的写作带来了无穷的力量,在这里,感谢那几位伙伴,哈哈!

    书归正传,今天我带来一个Static静态成员的缓存,其实它也不是什么缓存,就是C#语言里的一个特性,静态成员在被初始化后它将不会再被执行,即,他里面的内容只会被执行一次,直到你的网站被重启后(只考虑在单线程情况下)。相信大家都在做网站时,遇到了网站导航面包屑功能点吧,一般,我们把它写死在页面上,这种作法没有任何可扩展性和可维护性,所以,今天我们要改善一下这个功能点,使用的技术就是静态成员缓存和树型结构。

    先看一下导航的结构

       /// <summary>
        /// 导航面包
        /// </summary>
        public class BannerBread
        {
            public string DisplayTitle { get; set; }
            public string Url { get; set; }
            public int ID { get; set; }
            public int ParentID { get; set; }
            public BannerBread Parent { get; set; }
        }

    下面这段代码就是实现导航的核心,它对外提供一个唯一的访问点,所以,和两个公开的方法,一个是GetBanner,用来返回当前URL对应的导航完整对象(包括祖宗对象),GenerateStandardBanner方法返回一个标准的导航,当前,具体的项目,你可以自己

    去实现它。

        /// <summary>
        /// 导航生产类
        /// </summary>
        public static class BannerBreadFactory
        {
            /// <summary>
            /// BannerBread单例实例对象
            /// </summary>
            static readonly List<BannerBread> Instance = new List<BannerBread>();
    
            static BannerBreadFactory()
            {
                Instance.Add(new BannerBread { ID = 1, DisplayTitle = "首页", Parent = null, ParentID = 0, Url = "/" });
                Instance.Add(new BannerBread { ID = 2, DisplayTitle = "关于我们", Parent = null, ParentID = 1, Url = "/Home/About" });
                Instance.Add(new BannerBread { ID = 3, DisplayTitle = "联系我们", Parent = null, ParentID = 1, Url = "/Home/Contact" });
            }
            /// <summary>
            /// 得到当前URL的祖宗节点
            /// </summary>
            /// <param name="url"></param>
            /// <returns></returns>
            public static BannerBread GetBanner(string url)
            {
                var entity = Instance.FirstOrDefault(i => i.Url.ToUpper() == url.ToUpper());
                GetFather(entity);
                return entity;
            }
            /// <summary>
            /// 标准的导航,程序开发人员可以根据自己的需要,在具体项目中去定义它
            /// </summary>
            /// <param name="url"></param>
            /// <returns></returns>
            public static string GenerateStandardBanner(string url)
            {
                var entity = GetBanner(url);
                StringBuilder str = new StringBuilder();
                while (entity != null)
                {
                    str.Insert(0, "/<span><a href='" + entity.Url + "'>" + entity.DisplayTitle + "</a></span>");
                    entity = entity.Parent;
                }
                return str.ToString().StartsWith("/") ? str.ToString().Substring(1) : "未找到导航项";
            }
            /// <summary>
            /// 得到祖宗
            /// </summary>
            /// <param name="son"></param>
            private static void GetFather(BannerBread son)
            {
                if (son != null)
                {
                    son.Parent = Instance.FirstOrDefault(i => i.ID == son.ParentID);
                    GetFather(son.Parent);
                }
            }
    
        }

    上面的代码中,对于导航数据的部分,我选择了静态数据,当然,真实的项目中,需要将这块放到数据库里,以便于后期维护,一般地,我们可以在布局页去调用它来实现导航显示的功能,非常方便,下面是运行后的效果截图

     对于具体的显示,我们的前台显示可以自己去组装,上面显示的只是一种标准的形式,即由GenerateStandardBanner方法提供的形式。

    本文转自博客园张占岭(仓储大叔)的博客,原文链接:缓存篇(Cache)~第一回 使用static静态成员实现服务器端缓存(导航面包屑),如需转载请自行联系原博主。

    展开全文
  • 返回目录 ...而不是通过内存地址,而在进行导航制作时,我们正是使用了引用类型的这个特性,所以,我们的JS方法,就不能和C#相同了,如果使用其它方式,如,使用名称保存在一个变量。 下面...

    返回目录

    在写完首篇cache文章后,有些朋友给我来信,希望可以使用JS的方法来实现这个导航功能,所以,才有了这篇文章,JS与C#不同,它虽然有引用类型,但它不具备一些引用类型的特性,如它的方法参数为对象时,也是通过值传递的,而不是通过内存地址,而在进行导航制作时,我们正是使用了引用类型的这个特性,所以,我们的JS方法,就不能和C#相同了,如果使用其它方式,如,使用名称保存在一个变量里。

    下面是JS方式实现的导航,希望对JS朋友有些帮助

    <script type="text/javascript">
    
            //对象实体
            var BannerModel = function (name, url, id, parentID) {
                return {
                    Name: name,
                    Url: url,
                    ID: id,
                    ParentID: parentID,
                    Parent: {}
                };
            }
            var BannerStr = "";
            var Data = [new BannerModel("首页", "/", 1, 0), new BannerModel("用户中心", "/UserInfo", 2, 1), new BannerModel("基本信息设置", "/UserInfoSet", 3, 2)];
            //找老祖宗...
       
    function GetParent(o) { if (o != undefined && o.ID != undefined) { BannerStr = "<a href=" + o.Url + ">" + o.Name + "</a>" + ">" + BannerStr; for (var i in Data) { if (Data[i].ID == o.ParentID) { o.Parent = Data[i]; break; } } GetParent(o.Parent); } } //导航工厂
    var BannerFactory = { GetTreeBanner: function (url) { var temp = ""; BannerStr = ""; for (var i in Data) { if (Data[i].Url == url) { temp = Data[i]; break; } } GetParent(temp); return BannerStr; } } document.write(BannerFactory.GetTreeBanner("/UserInfoSet")); </script>

    看JS生成的导航截图

    返回目录

    展开全文
  • 2.我是用vue框架写的小程序后台管理系统,npm run build之后把dist里面的static和index文件放到服务器上面,所以要去阿里云服务器上面清缓存【登录–管理控制台–CDN–刷新缓存–URL–刷新】。 ...

    小程序报错如下:

    在这里插入图片描述

    1.小程序报404错误,xxx.css或xxx.js文件找不到,是服务器缓存问题。服务器需要清理缓存,不然会出现小程序后台管理系统内容已经更新,可是访问不了
    2.我是用vue框架写的小程序后台管理系统,npm run build之后把dist里面的static和index文件放到服务器上面,所以要去阿里云服务器上面清缓存【登录–管理控制台–CDN–刷新缓存–URL–刷新】。
    展开全文
  • static final修饰的静态变量修改后更新到服务器,重启无法生效的问题  今天在工作中碰到这样一个问题,有一个常量类,将工程中常用的一些变量定义在了里面。今天我要修改其中的某个变量。修改完后将编译好的.class...

    static final修饰的静态变量修改后更新到服务器,重启无法生效的问题

      今天在工作中碰到这样一个问题,有一个常量类,将工程中常用的一些变量定义在了里面。今天我要修改其中的某个变量。修改完后将编译好的.class文件更新到了服务器上,但是重启服务器后发现始终没有变化,还是以前的值。我就将服务器的缓存清理,然后再重启,依然没有改变。反反复复又更新上去,又清理缓存,又重启弄了好多次还是不行。

      我把服务器上的.class文件反编译,发现明明已经修改了,但是运行起来就仍然还是以前的值,感觉整个人都不好了。

      就把调用这个常量的类反编译了一看,果然调用的地方直接就写的是原来的那个值,而不是我修改后的值。终于恍然大悟,因为被static修饰过的类在编译的时候也就是.java转成.class的时候就已经编译到了引用这个常量的地方去了。 也就是说,如果修改了这个static修饰的常量类,那么所有引用过这个常量的地方都要更新到服务器。

     

    解决: 把静态常量相关的所有class都更新才能生效;最好的方法就是整个war更新项目

     

     

     

     

     

    展开全文
  • 今天在工作中碰到这样一个问题,有一个类...我就将服务器缓存清理,然后再重启,依然没有改变。反反复复又更新上去,又清理缓存,又重启弄了好多次还是不行。  我把服务器上的.class文件反编译,发现明明已经修改了
  • PHP文件缓存主要用来减轻数据库服务器的压力,这里所说的PHP文件静态缓存是指静态化,直接生成HTML或XML等文本文件,有更新的时候重生成一次,适合于不太变化的页面。1.静态文件缓存2.Memcache、redis缓存静态缓存:...
  • 静态资源服务器

    2018-03-03 15:00:41
    支持命令设置端口和静态目录,支持防盗链、缓存等功能。 创建目录 staticServer npm init 在package.json加入如下代码。bin里面是相应的命令,执行 static-server,即执行bin下面的www.js文件 "bin":...
  • //不使用缓存 //urlConnection.setFollowRedirects(false);是static函数,作用于所有的URLConnection对象。 urlConnection.setInstanceFollowRedirects(true);//是成员函数,仅作用于当前函数,设置这个连接是否...
  • <div><p>访问静态资源路径老是异常。访问一个静态资源路径,...强制刷新和换浏览器无用、所以不是浏览器缓存的问题。 然后修改访问路径?v=1等字符返回我的目标期望文件 这是fu服务器上的文件: ...
  • 这样可以降低服务器的负载。生成网页的语句其实很简单,可以分为2部分,第一部分是组织模板: context ={}里面放入需要传到网页的内容 temp = loader.get_template('static_index.html') static_index.html是已经...
  • 其实把blob缓存,我觉得不是最好的方案吧,即时做成byte[]缓存解决了原先的问题,但是,每张图片有300k,在签到峰值时期,每个用户客户端与服务器的网络流量将达到很高的程度,假设刷新为2s一次 300K*6=1.8M ,接近1...
  • nginx实现静态压缩这种做法其实就像apache gzip压缩了,这种压缩是我们常见的一些事情了,下面我来介绍...这里面主要是没有启动ngnix 的静态缓存模块(ngx_http_gzip_static_module)导致。 打开静态缓存问题就解决了 1
  • 在下面这篇文章的指导下,做了一个静态文件服务器,见:https://github.com/walkerwzy/node_static_server ==== 这是一篇阐述得比较详细的文章,从伺服静态文件,到支持文件夹,缓存,gzip/deflate,range,都是...
  • // 设置与缓存服务器的连接池 static { // 服务器列表和其权重 String[] servers = { "127.0.0.1:11211" }; Integer[] weights = { 3 }; // 获取socke连接池的实例对象 SockIOPool pool = SockIOPool....
  • -- 设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭 --> <constant name="struts.serve.static.browserCache" value="false" /> <!-- 当Struts2的配置文件修改后,系统是否自动...
  • 本文接下来分析CrawlServer类和CrawlHost类,两者都实现了IdentityCacheable接口(可缓存对象接口) CrawlServer对象代表服务器,里面存储了服务器的相关信息,包括服务名 端口 robots信息 Credential集合及相关...
  • static void Main(string[] args) { const int BufferSize = 8192; // 缓存大小,8192字节 Console.WriteLine("Server is running ... "); IPAddress ip = new IPAddress(new byte[] { 127, 0, 0, 1 }); Tcp...
  • 平时项目可能会遇到,在启动项目的时候,需要进行初始化操作,如执行一段SQL脚本,或者将查询数据写入本地或者是缓存服务器。这时候可以使用ApplicationRunner接口进行操作。 利用ApplicationRunner接口,实现...
  • 有人说是idea缓存问题 还有人说是少lombok 具体是什么问题,其实都是具体看项目报错说话。我这里的问题都不是上面的问题。 下面记录一下解决问题的思路: 前言: 因为项目需要接入mob秒验接口在应用服务器做...
  •  在根本设置---网络设置可以选择封闭或翻开DHCP服务器,在局域网设置可以修正路由器ip及子网掩码,DNS缓存服务器,小我建议勾上启用,如许路由器会缓存比来的DNS拜访,下次翻开就可以直接从当地缓存翻开,拜访...
  • 来避免增量同步时的不必要的CPU和IO开销</li><li>下载失败的资源现在会记录在 <code>/julia/static/failed_resources.txt,在24小时内进行增量同步时会略过这里面记录的资源,这样能大大加快增量的...
  • 游戏服务器的bug基本上只需要方法级别的更新就可以了,因为很多重大的bug基本在测试阶段被修复了,少量偶线的bug出现之后有些时候仅仅只需要改动一行代码却有时不得不需要重启所有应用程序,代价都似乎有点大。...

空空如也

空空如也

1 2 3 4 5
收藏数 84
精华内容 33
关键字:

服务器里static缓存