- 博客(161)
- 资源 (4)
- 收藏
- 关注
原创 设备ID生成方案演进与问题排查
设备ID生成方案演进与问题排查 本文总结了设备ID生成方案的演进过程,从最初的纯MAC地址方案,到硬件标识符方案,再到混合方案,最终优化为精准定位有线MAC的方案。早期方案存在MAC地址不稳定、硬件信息不可靠等问题,通过逐步优化实现了以下改进: 采用多硬件信息组合(主板序列号、CPU型号、系统UUID) 增加假UUID检测逻辑 引入混合策略:硬件优先,MAC降级 优化MAC选择策略,优先稳定有线网卡 最终方案在保证设备ID唯一性的同时,提高了稳定性和兼容性,能够应对各种硬件环境变化。
2026-06-23 17:36:36
123
原创 PaddleOCR-Web 集成实战:从踩坑到 IndexedDB 缓存加速全记录,本地实现图片转文字的全过程
PaddleOCR-Web 本地化OCR解决方案 本文介绍了一种纯前端实现的PaddleOCR(PP-OCRv5)中文识别方案,核心特点包括: 完全本地处理:所有OCR识别过程在浏览器端完成,图片无需上传服务器 智能缓存机制: 使用IndexedDB持久化存储模型文件(.tar)和wasm文件 通过fetch拦截技术实现onnxruntime动态加载资源的缓存 性能优化:首次加载需下载模型(约几十MB),后续使用可实现"秒开"体验 技术栈: @paddleocr/paddleocr-js作为OCR核心库 o
2026-05-26 16:42:22
369
原创 Electron WebView 缓存问题排查文档,更新版本之后页面各种打不开,报错等千奇百怪的问题
本文档分析了Electron WebView缓存问题的现象和原因,提供了三种解决方案:服务端禁止缓存、资源版本化以及Electron清理WebView缓存。详细说明了Electron的缓存机制,包括Session与Partition的关系,并给出了完整的缓存清理函数示例。重点解决了因缓存导致的前端资源更新不及时、接口调用失败等问题,适用于频繁更新或稳定发布的场景。
2026-04-28 12:25:06
225
原创 记录uniapp小程序的报错
问题就出在下面,小程序中view不支持写太复杂的表达式的,如下箭头部分,函数里嵌套匿名函数,匿名里再调用函数导致出现报错。方法就是封装为一个函数再调用就好了。[ WXML 文件编译错误] ./pages/chat1/chat1.wxml Bad attr。
2026-04-23 15:55:21
234
原创 文件上传接口 404 故障排查记录,接口能正常访问
摘要: 文件上传接口404问题排查发现,Nginx服务器对multipart/form-data请求进行了拦截。通过前端日志分析、独立测试页面验证和axios/fetch对比测试,确认问题源于Nginx配置限制:普通JSON请求正常转发,但文件上传请求被直接拦截返回404。根本原因是Nginx可能缺失client_max_body_size配置、proxy_pass路由错误或安全模块拦截。建议运维检查Nginx的上传限制配置、访问日志及后端服务路由,确保文件上传请求能正确到达后端服务。(148字)
2026-04-22 13:53:34
387
原创 Electron 自动更新(electron-updater)排查手册
Electron 自动更新排查手册摘要 本文详细介绍了electron-updater的更新流程和常见问题解决方案。核心流程包括版本比对、下载安装和缓存管理。关键点包括: 版本比对机制:通过latest.yml文件进行semver比较,只有服务器版本更高时才触发更新 缓存问题:默认缓存路径在LocalAppData下,可能导致下载异常或安装失败,需定期清理 安装原理:实际由NSIS安装器执行,需注意quitAndInstall参数设置 常见问题: 进度条缺失(因缓存快速完成) 重复退出提示(需添加安装标记位
2026-04-16 17:54:54
178
原创 Electron 摄像头打不开/锁死问题排查手册
Electron 摄像头问题排查与修复手册 问题现象: 摄像头无法打开或间歇性失败 关闭软件后 Windows 相机也无法使用 必须重启电脑才能恢复 根本原因: 应用层问题: IPC 监听器泄漏导致随机失败 摄像头流未正确释放 参数设置问题: 设置了不支持的 60fps 帧率要求 范围约束导致摄像头固件挂死 修复方案: 修复 IPC 泄漏和流释放问题 固定摄像头参数为 1280×720@30fps 增加全流程日志监控 排查清单: 检查代码参数是否为固定值 查看日志确认约束条件 检查 USB 物理连接 结论:
2026-04-16 13:43:35
102
原创 Electron 客户端安装失败 / 安装中止排查指南
Electron客户端安装失败排查指南摘要 当Electron客户端更新失败后出现安装中止问题时,主要原因是NSIS安装器在注册表中残留了未清理的卸载信息。典型表现为:安装目录已删除但提示"目录已存在",或安装进度卡住后报错。解决步骤包括:1)终止相关进程;2)删除残留安装目录;3)清理注册表(重点检查HKCU...\Uninstall下的随机命名子键);4)验证安装包完整性。提供PowerShell一键清理脚本和绿色版运行方案作为备选。预防建议:确保网络稳定、更新前先清理残留、保留安装
2026-04-15 15:34:35
114
原创 宝塔服务器网址ERR_CONNECTION_REFUSED报错排查流程
网站ERR_CONNECTION_REFUSED报错排查总结:该问题由Nginx配置中存在无效问卷星反向代理导致。排查发现Nginx启动失败,致使80端口无服务监听。通过删除错误配置并重启Nginx服务后解决。核心教训:严禁在生产环境Nginx中配置问卷星等外部代理,必须隔离测试;修改配置前需用nginx-t验证,避免因单点配置错误导致所有网站瘫痪。该案例凸显了Nginx配置严谨性的重要性,任何无效配置都可能引发全局服务中断。
2026-04-13 16:15:25
605
1
原创 宝塔配置nginx外网端口映射,配置多个外网端口的问题
摘要:在域名管理中遇到同一IP不同端口无法重复添加的问题,首次添加后可手动修改配置文件,在原有配置下新增server块。需确保端口开放,包括服务器防火墙(如阿里云需后台开放端口)和宝塔面板的安全设置中添加出入规则。最后通过telnet命令测试端口连通性(如:telnet 123.123.123.123 8666)。该方法可解决多域名共享IP但使用不同端口的配置需求。
2026-04-08 17:28:06
104
原创 记录一下uniapp项目中自己封装的组件开发环境特别卡的问题
摘要:针对u-image组件在v-for循环中的性能问题,提出使用原生image标签的优化方案。通过轻量化封装保留必要功能,实测显示原生方案加载时间减少68%,内存占用降低39%,FPS提升81%。优化措施包括简化组件逻辑、分页加载控制和CDN图片预处理,在500+图片量场景下可实现3倍性能提升,同时保持基础功能可维护性。
2026-03-17 15:00:29
228
原创 electron做无感更新,版本无感升级
软件升级是最普通最常见的功能,传统的升级方式是需要去下载、然后再安装、还要卸载之前的软件。一套下来繁琐就算了,并且还不好把控你的软件。万一你的软件有一个很严重的漏洞,用户就是借助你漏洞钻控制你也将无可奈何。所以我们这节课教大家如何做无感更新,也就是用户不知道的情况下,软件就自动完成了更新升级。而不需要用户同意、也不需要繁琐的去安装下载等。有了这篇文章,最少能省去你两天时间去研究,必定我十多年的开发经验了也耗费了大半天才搞出来。
2026-01-07 17:57:29
193
原创 vue、uniapp项目循环中能显示每个列表的内容,但是点击的时候传递的参数却不正确
这个问题找了几个小时,赶紧记录一下,以免下次又遇到这个问题了。这件事告诉我们,我们的知识积累是真的很重要,不要太依赖AI,我让AI给我找了半个多小时都没找到问题,推荐的都是一些乱七八糟的方法。
2025-12-30 14:16:24
257
原创 electron-builder无法打包node_module内容的问题,以及打包各种路径报错问题
本文记录了一个因路径引用和node版本问题导致的Electron打包错误。开发环境运行正常,但打包后出现找不到模块的错误,原因是服务器文件未被打包进asar文件。同时由于node版本过低(16.x),与Electron最新版要求的18/20版本不兼容,导致node_modules依赖问题。解决方案包括:1.调整文件路径确保打包包含所有依赖;2.升级node版本至20.x并重新安装依赖。该问题耗时5小时排查,提醒开发者不仅要记录问题,更要理解打包流程原理以便快速定位类似问题。
2025-12-23 18:04:17
165
原创 electron通信搞蒙一下午,主线程->index.html->webview通信交互
本文探讨了Electron项目中多层页面间的通信问题。项目采用main.js→index.html→webview内嵌页面的结构,发现常规script调用的JS无法使用Electron功能,必须通过preload脚本注册变量。文章详细介绍了如何通过contextBridge.exposeInMainWorld暴露Electron API,实现子页面向主线程发送消息(ipcRenderer.send)以及主线程向webview发送消息(需经index.html中转)。重点指出webview元素必须在DOM加载
2025-12-10 15:05:20
186
原创 记录一下el-table中的子元素不渲染的问题
然后发现懒加载没法动态刷新列表,最后改为直接加载全部。排查组件,排查参数配置都没找到问题。最后排查数据,发现我这边能显示与不能显示的数据唯一的区别是多了hasChildren。我把所有的hasChildren删除之后就好了。真心的是无语了,还存在这个bug。这个hasChildren我没用懒加载就不用这个字段不就行了吗?谁能排查到这里,耽误了我整整一上午的时间。props参数里加了hasChildren。数据处理也加了这个hasChildren。耗费了我一上午的时间,真心是无语了。
2025-12-05 11:16:16
242
原创 服务器缓存的清理笔记,特别是nginx
特别的无语真的,搞了我两天。服务器把静态文件都删除干净了,服务都停止了,但页面还是能访问。如下图:我是从未如此无语过。浏览器也清除了缓存很多次了。服务器statics目录也删除了,后端服务也关了,但还是无法清除。.这是我这边的koa后端框架设置的缓存为1年0 : 365 * 24 * 60 * 60 * 1000, // 开发环境禁用缓存,生产环境缓存一年immutable:!
2025-11-27 17:56:33
90
原创 web前端开work子线程性能优化方案并且支持vite打包
本文介绍了利用Web Worker解决浏览器单线程导致的性能问题。通过Vite工具创建内联子线程(?worker&inline),实现主线程与子线程通信。主线程通过postMessage发送任务,子线程处理图像抠图和相似度计算等耗时操作后返回结果。该方法避免了传统Worker的文件分离问题,支持直接使用node_modules模块,并通过消息ID确保多任务处理的准确性,有效提升了页面响应速度。
2025-11-05 12:13:27
110
原创 web端实现给摄像头标记人物框,跟随人物进行检测。记录检测框标记的位置不正确的问题。
纯前端实现视频人物的实时检测,对你没听错,纯前端就可以实现。
2025-11-02 12:53:22
238
原创 puppeteer函数笔记,设置token跳过登录、自动选择图片上传等
本文介绍了使用Puppeteer进行自动化测试的方法,重点演示了表单输入和图片上传的自动化处理。通过设置Cookie跳过登录验证,配置浏览器初始化参数,并详细说明了页面导航、元素定位、表单填充等操作步骤。文章还提供了图片上传的实现代码,只需定位上传元素并调用uploadFile函数即可。作者指出,对于复杂业务场景(如多表单录入、权限测试)适合编写自动化脚本,而简单操作(如删除测试)则建议手动操作更高效。文中示例代码可直接用于测试环境,完整展示了从准备到执行的测试流程。
2025-10-31 16:26:32
108
原创 puppeteer配置登录页面自动化测试
摘要:该Puppeteer测试脚本用于自动化测试登录页面功能,主要包含以下步骤:1)启动Chrome浏览器并访问本地登录页面;2)验证页面标题和关键元素(账号/密码输入框、验证码、登录按钮等);3)尝试自动填充账号密码并登录;4)检查登录后跳转是否符合预期。脚本采用非无头模式运行,包含错误处理和页面截图功能,但无法自动识别验证码,需人工干预或结合图像识别技术才能完成完整测试流程。
2025-10-31 14:29:12
129
原创 vitest单元测试笔记
之前的文章已经做好了安装,然后我们需要配置测试模块。这里就涉及到如何取写配置。如何测试。比如页面是否正常渲染,是否含有对应的模块。按钮点击之后页面的变化,输入文本框内容的变化等等。经过测试发现复杂一点的页面完全不能测,写测试案例的成本比写代码的成本还高,哪怕是智能体帮你写。建议用puppeteer来测,也就是无头浏览器。
2025-10-31 14:07:52
1246
原创 vitest单元测试测试vue中了element项目安装与运行笔记
摘要: 本文介绍了AI辅助单元测试的优势及Vue项目的单元测试配置方法。作者从传统单元测试成本高的痛点出发,提出利用AI自动生成和运行测试的新方案。详细说明了在Vite+Vue项目中配置Vitest测试框架的步骤,包括安装指定版本的vitest、@vue/test-utils和jsdom,创建vitest.config.js配置文件,以及编写setup.js初始化文件。最后展示了如何编写测试用例并运行测试,提供全局测试和单文件测试两种执行方式。通过这套方案,开发者可以大幅降低单元测试的编写成本,提高开发效率
2025-10-31 12:11:58
549
原创 智能体AI写代码笔记
AI智能体高效生成全栈代码,包括Vue页面、数据库配置、后端接口等,并能按需调整UI设计,大幅提升开发效率。但需掌握专业知识和精准提问技巧才能充分发挥其潜力。
2025-10-27 10:59:46
464
原创 域名绑定了ip地址,也安装了宝塔但还是无法访问
摘要:排查网络通信问题需遵循系统流程:1)检查域名解析是否正确;2)确认云服务器安全组配置(80/443端口开放);3)验证Nginx服务状态及配置;4)检查网站服务是否启动。重点强调必须按顺序排查,每个环节都相当于"景区"的不同关卡(域名解析=地址定位、安全组=景区大门、Nginx=检票员、网站服务=具体展馆)。特殊情况下需注意非标准端口配置和端口冲突问题。该流程形象化地通过"小朋友游景区"的比喻,清晰说明了网络请求各环节的对应关系。
2025-10-17 16:07:15
204
原创 webpack,vite,node等启动服务时运行一段时间命令窗口就卡住
摘要:服务运行卡顿问题可通过禁用快速编辑模式解决。操作步骤:打开命令窗口,右键点击属性,取消勾选"快速编辑模式"选项。该方法能避免服务无响应,无需反复按Enter键唤醒。
2025-10-10 18:10:29
251
原创 vite与axios如何配置多个接口域名支持跨域,若依配置为例
如何在Vite项目中配置多接口域名?本文以若依配置为例,通过.env文件分别设置开发和生产环境的API地址(如VITE_HOST_BAIDU_URL和VITE_HOST_QQ_URL)。关键是在vite.config.js中配置proxy代理,将本地请求(如/baidu-api/getmydata)转发到目标域名(如https://www.baidu.com/api/getmydata),通过rewrite规则去除代理标记解决路径问题。在axios请求时,通过baseURL参数动态选择不同接口域名,从而解决
2025-09-23 17:05:36
182
原创 记录一下node后端写下载https的文件报错,而浏览器却可以下载。
Node.js下载报错"unable to verify the first certificate"是由于证书不完整导致,浏览器能自动补全证书但Node.js不行。可通过SSLServerTest检测证书完整性,发现问题后建议删除原证书重新申请新证书解决。该问题表现为浏览器可用但Node环境不可用的特殊状态。
2025-09-03 15:01:48
283
原创 记录一下,宝塔https证书启动了但是还是访问不安全的问题。
本文记录了排查HTTPS证书问题的过程,主要包括四个步骤:检查证书配置是否正确,确认443端口是否开放,手动重启nginx服务(而非宝塔面板),以及解决端口占用问题。重点强调了自动重启nginx可能失败的问题,建议通过命令或可视化界面手动重启,并提供了查看和杀死占用端口的命令。最终通过杀死占用端口的进程并重启nginx,成功解决了HTTPS证书失效的问题。整个排查过程耗时5小时,作者建议做好记录以便日后参考。
2025-09-01 10:43:36
299
原创 修改双向绑定默认值之后多选下拉框无法选择了
原理也很简单,catherList之前存储的位置发生的变化,导致无法监听到了。具体可以看内存存储相关视频。使用如下方法,则可在原存储的位置更新数据。下拉框就无法选择了,我是真的无语了。存储发生了变化,也就失去了响应式。
2025-08-19 14:36:29
275
原创 解决mysql用localhost可以连接,换成ip地址就不能连接了。
MySQL远程连接配置指南 本文详细介绍了解决MySQL远程连接问题的完整方案: 端口配置:使用管理员权限开放3306端口 配置文件修改:在my.ini中添加bind-address=0.0.0.0允许所有IP连接 账号权限设置: 检查现有账号权限SELECT user,host FROM mysql.user 创建新远程账号CREATE USER '用户名'@'%' IDENTIFIED BY '密码' 授予权限GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' 防火墙检查:
2025-08-07 11:27:11
756
原创 异步函数被调用多次,多次处理同一个文件导致占用,如何让异步函数按顺序执行?
文章摘要:针对事件监听多次触发文件写入导致并发冲突的问题,作者提出使用任务队列来顺序执行异步操作。通过创建一个SimpleQueue类,利用Promise链式调用的特性,将每次写入任务添加到队列中,确保前一个任务完成后才执行下一个。具体实现是将wirteInterface函数封装为队列任务,通过add方法依次执行文件写入操作,从而避免文件占用冲突。这种方法有效解决了异步操作并发执行的问题,保证了文件写入的顺序性。
2025-08-01 18:08:56
89
原创 如何用js自动触发deepseek输入并发送,不调用api的情况
有了deepseek这个免费的AI确实是特别好用,也不需要科学上网。但是如果我想在自己项目去使用deepseek,这里就涉及到相关的api调用。去腾讯看了一下最便宜的都需要800一年。我们何不直接用免费的呢?我们只需准备一台电脑,然后用脚本写一个服务,调用服务的时候,我就自动打开deepseek然后自动输入内容,然后再将结果发送出去不就可以了吗?
2025-07-25 16:28:53
173
原创 竞速机制:Promise.race() 多个异步一起指向,谁跑的快就用谁
注意:数组里的异步函数可能指向一半就被中断了,比如监听了加载,但迟迟没有数据返回。那么这边就不会进入到onSucces或onFail函数,导致内存泄漏。race里有多个数组,数组的内容都是异步函数,而这个race会监听数组里的异步函数,那个resolve或reject先返回,则用那个异步。以上代码是监听页面加载与超时,如果超时先指向,则返回超时的异步。所以要及时清理缓存。
2025-07-24 10:46:17
196
原创 electron自动化,webview中通过a标签跳过弹框自动下载文件
该代码实现了一个基于Electron的WebView下载拦截功能。通过在WebView中监听will-navigate事件,当检测到下载状态时,阻止默认下载行为并调用Electron的下载API。具体流程:1) preload.js暴露downloadFile方法到主窗口;2) renderer.js监听导航事件,调用下载方法后阻止默认行为;3) index.js主进程接收下载请求并通过webContents.downloadURL触发下载。该方案有效拦截了WebView默认下载弹窗,实现了使用Electr
2025-07-23 13:21:12
297
原创 最新版的electron通信规则
本文介绍了新版Electron的进程间通信机制。由于安全考虑,新版Electron限制非主进程直接调用Node API。文章首先分析了项目结构:主进程(index.js)可调用所有API,预加载脚本(preload.js)可调用Electron API,而渲染进程(renderer.js)只能处理页面交互。通过IPC(进程间通信)实现功能调用:主进程监听事件,预加载脚本通过contextBridge暴露API给渲染进程,渲染进程通过window.electronAPI调用功能。最后以设置窗口标题为例,演示了
2025-07-22 10:22:36
243
原创 指定阿里镜像原理
该摘要介绍了如何通过npm安装@nut-tree/template-matcher插件,并指定了国内镜像源registry.npmmirror.com。文中提到可以直接在阿里镜像站搜索该插件查看可用版本,并解释了registry地址的构成原理:由registry地址拼接插件名称形成下载链接。最后指出若遇到库下载问题,可自行搭建服务器上传库并配置对应registry地址。
2025-07-18 16:57:25
344
原创 webpack将组件vue进行编译混淆,并能正常使用编译之后的文件
本文介绍了如何通过Webpack对Vue组件进行编译混淆,以保护开发者的代码权益。文章首先说明了组件复用和代码保护的重要性,特别是当项目未结款时。通过对比源码和编译后的代码(如my-component.min.js),展示了混淆后的代码难以维护但功能不变的特点。详细讲解了Webpack配置步骤,包括创建webpack.mycomponent.config.js文件、设置入口和输出参数、添加必要的loader和插件等。还介绍了兼容静态HTML的方法和打包命令。最终编译后的组件仍可通过import方式正常使用,
2025-07-16 16:30:06
217
element-plus-vite-starter-master.zip
2021-04-09
中文转换为拼音插件,插件封装好直接调用即可,提供了源码用户也可修改插件
2018-07-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅