前言
最近发现自己的博客系统访问越来越慢,虽然服务器部署在国外,但也不至于这么慢,平均展示一个页面需要几秒的时间,简直无法忍受。通过chrome F12查看页面网络请求,发现主要影响页面加载缓慢的原因是从fonts.googleapis.com加载字体资源文件时,请求一直pending,导致页面渲染慢,特记录一下优化过程。
最近发现自己的博客系统访问越来越慢,虽然服务器部署在国外,但也不至于这么慢,平均展示一个页面需要几秒的时间,简直无法忍受。通过chrome F12查看页面网络请求,发现主要影响页面加载缓慢的原因是从fonts.googleapis.com加载字体资源文件时,请求一直pending,导致页面渲染慢,特记录一下优化过程。
首先,html5中的Web Storage包括了两种存储方式:sessionStorage和localStorage。其中sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁,因此sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储;而localStorage则用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。
Cookie是保存在客户端中,按在客户端中的存储位置,可分为内存Cookie和硬盘Cookie。内存Cookie由浏览器维护,保存在内存中,浏览器关闭后就消失了,其存在时间是短暂的。而硬盘Cookie保存在硬盘里,有一个过期时间,除非用户手工清理或到了过期时间,硬盘Cookie不会被删除,其存在时间是长期的。所以,按存在时间,可分为非持久Cookie和持久Cookie。
在有些场景下,我们需要对类中的静态属性赋值,比如在设计一个基础公共功能的sdk时,有一个比较重要的原则是尽量减少对其他jar包的依赖,防止上层应用在引入sdk时,存在过多的maven版本不一致的冲突,导致程序运行出现NoClassFoundError异常。基于上述原则,现在的情况是此sdk需要获取上层应用中通过spring配置的动态数据源对象,但是又不想依赖Spring的相关jar。解决办法就是通过Spring的静态属性注入。
通常情况下,同一模块的配置在开发环境,测试环境,生产环境下都是不同的,例如:mq,dubbo等ip,port,用户名及密码都会不同,这个时候,我们就可以使用Spring自带的PropertyPlaceholderConfigurer对象对嵌入到Spring中的配置进行集中管理,这样不同环境下只是mq.cfg.properties及dubbo.cfg.properties里面的值不同而已,其他文件是都是一致的;从而达到对不同环境下配置文件的合理清晰的管理。