问题背景在去年底,看到一则信息,免费HTTPS证书有效期从一年调整为了三个月。没多久,便在阿里云控制台上看到了这则变更的通知:《关于免费证书服务策略调整通知》,意思是证书颁发机构改变了策略,云厂商不得不跟随调整。恰逢网站HTTPS证书即将到期,便开始寻求免费证书+自动续期的方案。...[阅读全文] 先前曾总结了2篇文章(见:《log4js按分类和日期存储为多文件问题》和《使用定时任务解决log4js的按日期存储问题》)描述如何解决log4js的按日期存储问题,然而,通过日志可以发现,前述方案虽然解决了操作日志的按日期存储问题,却并没有解决通过log4js.connectLogger中间件方式产生的访问日志的按日...[阅读全文] 众所周知,网站访问统计区分很多维度,包括:PV(Page Views)、UV(Unique Visitors)、IP、跳出率、转化率、访问时长、访问深度、访问来源、搜索词、访客属性(地域、年龄、性别等)、终端属性(浏览器、操作系统、分辨率等)、回头客占比等等。其中,有些统计维度直接根据日志便可实现,...[阅读全文] 众所周知,JWT token 是无状态的,前端请求携带加密后的 token 到后端,后端解密后进行登录态和权限的校验等,整个过程中 token 一旦生成就无法撤销、销毁,直至其到期失效。这就产生了一个问题,在 token 失效前如果手动点击了“退出登录”,我们能做的只是销毁客户端(浏览器)缓存的 t...[阅读全文] 在《Angular Universal(SSR)的重复加载问题》一文中曾经介绍过Angular v14.x版本中出现的重复加载(flickering)问题,并给出了解决方案。然而,升级到Angular v15.x后,重复加载问题再次出现了。诡异的是,实际上,state在服务端是正常调用并在页面缓存了的。如下:console.log(1, storedRe...[阅读全文] 从一些抽象的形而上的角度,谈谈为什么选择Angular。[阅读全文] 在开发壁纸时,使用到了NestJS中的定时任务,但在发布生产后,却出现了数据重复问题。反复排查之后,最终发现问题的罪魁祸首是多进程环境导致的并发问题。在定时任务场景中,每个单独的服务进程都将执行一次定时任务,导致重复爬取。且因为各进程的执行时间差在毫秒级别,根本无法使用ID重复校验...[阅读全文] 梧桐CMS管理后台数据看板在解决了数据断点问题后,整个数据看板(数据大屏)宣告完工,耗时:开发2天(含文档学习、架构设计,及API、前端开发),优化、Bug修复1天。无论是过程,还是结果,都是相当满意,也可谓收获满满。故,在此做一番总结和感慨……缘起关于数据大屏,内心一直...[阅读全文] 升级到Angular v14.x版本后,发现刷新页面时会出现闪现(flickering)的情况,查看控制台,发现是重复请求的问题,即:服务端发起请求后,在客户端又重新发起了一次请求。此问题在刚开始接触Angular Universal时已经踩过坑,彼时是通过引入TransferHttpCacheModule、BrowserTransferStateMo...[阅读全文]