JS事件莫名其妙不触发解决方法

问题描述 监听 JavaScript 事件时,对应处理函数只有一个console.log(),但事件并没有触发。 document.getElementById("myButton").addEventListener("click", (e) => { console.log("Button clicked"); }); 问题原因 Vite 中配置了去除 console.log 的功能,导致在生产环境中无法输出日志。 解决方法 删除对应的 Vite 配置即可

June 16, 2025

reqwest请求被cloudflare拦截

问题描述 在使用 reqwest 请求时,即使是最简的请求也会出发 cloudflare 的拦截,导致请求失败。例如以下代码: let res = match self .client .get("https://api.bgm.tv/v0/subjects/12") .send() .await { Ok(res) => res, Err(e) => { return Err(e.to_string()); } }; 临时解决方法 添加 native-tls-alpn feature [dependencies] reqwest = { version = "0.11", features = ["native-tls-alpn"] } 参考链接 Request made with reqwest blocked by Cloudflare’s protection but succeeds with curl

April 26, 2025

CPU 线程数只有实际的一半解决方法

问题描述 Windows 任务管理器中显示 CPU 线程数只有实际的一半 如下图,实际 CPU 线程数为 16,但任务管理器中显示的线程数为 8。 问题原因 在 CPU 管理工具,例如 Ryzen Master 中,开启了同步多线程 (SMT) 功能,导致 Windows 任务管理器中显示的线程数只有实际的一半。 解决方法 关闭 CPU 管理工具中的同步多线程 (SMT) 功能,重启计算机后,Windows 任务管理器中显示的线程数应该恢复正常。 你需要关闭 SMT 吗? 这应该是一个经常被讨论的问题了,我个人的建议是,对于一般消费者,除非你追求极致的单核表现,不然没必要关闭 SMT,多数时候打开 SMT 并不会带来负面的影响。 现代的操作系统在调度上都考虑到了 SMT 的特性,比如你有 8 个核心 16 线程,那么在多任务要求不是很大的情况下,操作系统会尽量避免让一个核心同时执行两个线程。那么那些单核倒退、资源冲突的情况就基本不会发生了。而当多任务要求很高的时候,操作系统让一个核心跑多个线程,这时候虽然可能会发生冲突导致效率反向降低,但是更多的时候是增加效率,所以从期望上来说,是没必要的。 如果追求极致性能且自己确切不需要那么多多线程性能,自然可以关掉。反正也用不到那么多线程,享受不到 SMT 的好处,还不如索性关了,杜绝一切可能的开销,也更容易超频了。所以其实核心越多的,越适合关闭 SMT,至于还在用 4 核心之类的就别关了。 参考链接 Wikipedia 同步多线程 知乎 说一说超线程/同步多线程(HT/SMT)技术那些事儿

April 9, 2025

Windows更换CPU后PIN无法修改或无法删除问题解决方法

问题描述 更换 CPU 后,Windows 系统提示无法使用 PIN 登录,但 PIN 可以正常修改,但修改后锁屏界面仍然无法使用 PIN 登录 并且在设置中删除 PIN 选项变为灰色。 参考链接 How do I remove PIN (Windows Hello) option if it is greyed out? 解决方法 启动 cmd,输入以下命令: certutil.exe -DeleteHelloContainer 注销重新登录,PIN 选项现在应该被正常删除了。 总结 中文互联网确实被狗屎 CSDN、知乎等网站污染了,搜索同样的关键字,结果一整页都是重复的方法,下次遇到问题还是得先用英文搜索。CSDN、百度这种垃圾公司什么时候死?

April 8, 2025