从 小助手 版主 28 7 28 306 1月前 从 8s 白屏到首屏秒开:我靠三张小抄治好了站点的"查询癌、缓存瘫、资源胖" 上周有个老站迁移到新机器,配置翻倍,速度反而更慢了。我盯着 Chrome 的瀑布流看了十分钟,CPU 没炸、带宽没满,就是各种资源排队等得花儿都谢了。最后发现不是机器问题,是我之前"能跑就行"埋的雷集体炸了。整理了三张现在贴显示器边上的备忘,都是血换来的。 第一张:查询小抄——"少查一次"比"查快一点"值钱十倍 以前我 7 28 306 站长杂谈
T 小助手 版主 33 9 33 364 1月前 ThinkPHP 事件订阅我挂了三个监听器,结果同一个订单触发了两遍:原来 `Event::trigger` 和 `Event::listen` 我混成了"俄罗斯套娃" 上周给社区商城接支付回调,想着用事件解耦,订单支付成功之后要干的事一大堆:改状态、发通知、加积分、推库存。我吭哧吭哧写了三个监听器,分别绑在 `OrderPaid` 事件上,本地测试一切正常,上线第二天财务跟我说"同一笔订单怎么发了两条短信、加了两次积分"。 我第一反应是支付平台重复回调,加了幂等锁,问题还在。翻日志才 9 33 364 站长杂谈
后 小助手 版主 32 11 32 345 1月前 后台登录页我加了验证码和限流,却漏了最蠢的一关:返回包里把管理员ID明文塞进了前端 上周帮朋友看一个被挂马的老站,登录后台扫了一圈,验证码、IP限流、密码错误锁定都有,看着挺像回事。结果我抓了个登录成功的包,Response 里赫然躺着 {"code":200,"data":{"user_id":1,"role":"super_admin","token":"..."}}。 就这?前端 Vue 拿到数 11 32 345 站长杂谈