自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(235)
  • 收藏
  • 关注

原创 网页加载慢或者卡顿?这几招排查方法简单又有效

网页加载慢?5个简单排查方向帮你快速定位问题:1.升级HTTP协议到HTTP/2/3;2.分散静态资源到不同域名避免请求排队;3.优化图片(压缩体积、调整尺寸、使用WebP/SVG格式、添加异步解码);4.采用懒加载延迟非首屏内容;5.检查JS代码是否阻塞主线程。这些基础优化就能显著提升网页流畅度,适合非技术人员快速排查性能问题。

2026-04-20 13:30:04 360

原创 BullMQ快速入门

BullMQ是一个基于Redis的Node.js任务队列库,提供高效的任务管理和处理能力。核心组件包括Queue(任务中转站)、Worker(任务执行者)、Job(具体任务)和Redis存储。基本使用分为生产者添加任务和消费者处理任务两个部分,支持延迟执行、重试机制、优先级控制等高级功能。通过QueueEvents可实现全局任务监控,还支持定时任务和工作流管理。建议使用独立进程运行Worker以提高稳定性。该库特别适合需要可靠任务处理和分布式协作的应用场景。

2026-04-11 13:43:52 251

原创 SVG矢量图形快速入门

SVG(可缩放矢量图形)是一种基于XML的矢量图形格式,相比位图具有显著优势:无限缩放不失真、文件体积小、支持CSS/JavaScript控制,并有利于SEO。摘要介绍了SVG的基本结构、常用图形绘制方法(矩形、圆形等)、核心路径元素<path>的使用技巧,以及如何通过CSS、SMIL和JavaScript实现动画与交互效果。还涵盖了高级特性如滤镜应用和响应式设计,并推荐了实际项目中的优化工具和工作流程。

2026-04-10 13:52:20 386

原创 Nuxt4高效代码块与优化技巧

本文整理了Nuxt4常用代码块功能,包括使用@nuxt/image优化轮播首图加载,在nuxt.config.ts中配置图片格式,以及通过server/plugins/extend-html.ts实现来源统计功能。其中来源统计部分通过MutationObserver监听URL变化,使用fetch向服务端发送访问记录。这些代码片段将持续更新完善。

2026-03-27 17:39:23 44

原创 (Nodejs or Bun) + 支付宝支付

在Bun运行时环境中实现支付宝沙箱支付的方法。由于Bun对Node.js的支持不确定,作者建议手动调用支付宝API。文章提供了详细的配置步骤和示例代码,包括RSA2签名验证、支付表单生成和异步通知处理等核心功能。同时指出了几个常见问题:1)异步通知失效可能由于内网穿透域名不安全;2)需要在沙箱控制台配置正确的回调地址;3)某些内网穿透工具会拦截首次访问。

2026-03-16 09:12:35 286

原创 别再手搓WebRTC了,试试PeerJS

PeerJS是一个简化WebRTC点对点通信的JavaScript库,支持浏览器间的音视频通话和数据传输。核心组件包括Peer(连接实例)、DataConnection(数据传输)和MediaConnection(音视频流)。通过PeerServer进行信令交换后建立直接P2P连接。安装方式支持CDN引入或npm安装,并可通过命令行启动PeerServer。基础用法包括创建Peer实例、事件监听和错误处理。数据传输功能支持建立连接、发送多种格式数据(字符串、对象、二进制等)及处理接收数据。

2026-03-06 13:50:52 294

原创 Go之路 - 9.go的包

Go语言中的包是代码组织和复用的基本单位,每个Go文件必须声明所属包。主要内容包括:包的声明方式,main包的特殊性,创建和使用自定义包的方法,包的导入方式(基础导入、分组导入、别名导入等),init函数的执行顺序,包初始化流程,包组织结构的最佳实践,内部包的使用限制,解决循环导入问题的方案,以及如何为包编写文档。文章还列举了常用的标准库包,并介绍了查看包文档的方法。

2026-03-05 10:16:17 88

原创 Minio不好用了?来试试RustFS

本文分析了Minio在商业化进程中出现的问题,包括社区版功能缩减、版本更新频繁、S3兼容性问题等痛点。同时介绍了新兴对象存储系统RustFS的优势:采用Rust语言开发,具有更高性能和安全性,完全兼容S3 API且开源友好。文章提供了通过Docker快速部署RustFS的方法,并详细演示了如何使用TypeScript的AWS S3 SDK操作RustFS,包括创建/列出/删除存储桶等基础操作。为寻找Minio替代方案的开发者提供了一个值得考虑的选择。

2026-03-05 09:31:07 436

原创 Neutralinojs 快速入门

Neutralinojs是一个轻量级跨平台桌面应用框架,使用JavaScript/HTML/CSS开发,相比Electron体积更小。它利用系统内置WebView显示界面,通过WebSocket实现原生API功能。本文详细介绍了Neutralinojs的特点、项目创建流程、配置文件解析、多种原生API使用方法(包括窗口控制、文件系统、命令执行等),以及打包发布步骤。该框架支持Windows、macOS和Linux平台,提供了一套轻量高效的桌面开发解决方案,适合构建实用型跨平台应用。

2026-03-04 14:25:58 381

原创 Elysia Admin —— 基于 Elysia + Vue 的全栈后台框架

这是一个关于全栈后台管理系统 Elysia Admin 的项目分享。作者性能怪兽 Elysia.js(跑在 Bun 上) 与高颜值后台框架 Art Design Pro 结合,打造了一个开箱即用的企业级后台。文章详细展示了用户、角色、菜单、权限、日志、定时任务等 14+ 核心功能模块,旨在为独立开发者或小团队提供一个高性价比、可二次开发的全栈脚手架。

2026-03-04 13:48:07 1339

原创 Electron太重?试试Neutralino

Neutralino.js:轻量级跨平台桌面应用开发新选择 摘要:针对Electron框架存在的体积臃肿、内存消耗大等问题,Neutralino.js提供了一种轻量级替代方案。它利用系统原生WebView组件渲染界面,无需捆绑Chromium和Node.js,使应用体积缩减至1-3MB,内存占用显著降低。虽然功能上不及Electron强大,但Neutralino.js更适合开发轻量级工具、仪表盘等应用,具有更好的性能和安全性。该框架支持Windows、macOS和Linux平台。

2026-03-02 15:34:45 926

原创 Ollama模型的配置选择

摘要: Ollama本地AI模型存在多个版本且磁盘占用差异显著(几GB到几十GB),主要原因包括模型架构演变、参数规模差异、量化精度格式(如FP16到INT2可缩小6倍体积)及微调变体。量化技术通过降低权重位数实现压缩,4位量化(Q4_K_M)在性能与体积间达到最佳平衡。选择模型需结合硬件条件(如内存大小)和任务需求(编程/写作/研究),并通过Ollama命令管理存储。合理选择量化版本(如8B模型Q4格式仅4.5GB)能优化资源使用效率。

2026-02-01 18:00:13 822

原创 懒人卸载软件神器-geek

摘要:GeekUninstaller是一款免费的卸载工具,能彻底清理软件残留。相比系统自带卸载程序,它提供更干净的卸载效果,适合需要深度清理的用户。该工具操作简单,完全免费使用。

2026-01-20 11:04:41 210

原创 Nestjs接入公众号分享

本文介绍了使用NestJS框架接入微信公众号分享功能的实现方法。主要内容包括:1) 公众号开发者配置流程,包括获取AppID和AppSecret、添加服务器IP和网页域名;2) NestJS核心代码实现,包含WechatService(处理access_token和jsapi_ticket获取)、WechatController(提供JSSDK配置接口)和WechatModule模块;3) 前端Vue3实现,包括检测微信环境、动态加载微信SDK和初始化分享配置。文章提供了完整的代码示例,展示了如何通过内存缓

2026-01-19 13:31:39 349

原创 Go之路 - 8.go的接口

Go接口的核心机制与应用模式 Go语言的接口采用隐式实现机制,类型无需显式声明实现接口,只需包含接口定义的所有方法即可自动实现。编译器会自动检查方法签名匹配情况,并允许类型自动转换为接口类型。接口的核心应用包括:作为函数参数实现多态(如Shape接口处理不同几何图形)、通过小接口组合构建复杂功能(如ReadWriteCloser)、利用空接口存储任意类型数据。高级特性涉及指针/值接收者的实现差异、接口零值为nil但可包含nil动态值等。这种设计使Go接口既灵活又类型安全,支持松耦合架构和扩展性编程。

2025-12-26 13:13:45 358

原创 Go之路 - 7.go的结构体

本文系统介绍了Go语言结构体的核心概念与高级用法。主要内容包括:结构体定义与初始化(4种方式)、嵌套与匿名嵌套结构体、结构体标签的JSON序列化应用、值/指针接收者方法。高级特性部分涵盖组合实现"继承"、结构体实现接口、工厂函数模式、结构体比较、空结构体优化以及内存对齐技巧。文章强调Go应遵循"组合优于继承"原则,通过结构体嵌入实现代码复用,并提供了性能优化建议如合理使用指针接收者、优化内存布局等。最后总结了结构体使用的最佳实践,包括工厂函数、字段访问控制、接口实现等

2025-12-13 10:06:14 343

原创 Go之路 - 7.go的函数

本文系统介绍了Go语言中函数的使用方法和高级特性。主要内容包括:1) 基础函数声明、多返回值和命名返回值;2) 函数作为值和闭包实现;3) 可变参数和延迟执行(defer)机制;4) 方法与接收者的定义和使用;5) 匿名函数和错误处理模式;6) 函数实现接口和回调函数设计模式;7) 函数选项模式等最佳实践。文章通过大量代码示例展示了Go函数式编程的核心特性,涵盖了从基础语法到高级应用的全方位内容,为开发者提供了完整的Go函数使用指南。

2025-12-12 10:28:37 239

原创 Go之路 - 6.go的指针

Go语言指针详解:基础概念与核心应用 本文系统介绍了Go语言中指针的核心知识,包括指针基础概念、声明初始化方法、指针操作以及与函数、结构体、数组/切片、映射的结合使用。重点讲解了指针的解引用、值传递与指针传递的区别、指针接收者方法等关键特性,并分析了多级指针的应用场景。文章指出Go指针相比C/C++更安全,没有指针算术,减少了内存错误风险,同时强调了指针在函数参数传递、大结构体处理和数据共享等场景中的优势。通过丰富的代码示例展示了指针的正确使用方式,帮助开发者编写高效清晰的Go代码。

2025-12-11 14:16:54 302

原创 Go之路 - 5.go的流程控制

本文介绍了Go语言中的条件语句和循环结构。条件语句部分详细讲解了if-else语句的基本用法、实际示例和初始化语句特性,以及switch-case语句的基本用法、多值匹配、表达式判断、初始化语句和fallthrough关键字。循环语句部分涵盖了for循环的基本形式、类似while的循环、无限循环、遍历数组/切片/map/字符串的方法,以及break和continue控制语句的使用,包括带标签的break和continue实现多层循环控制。这些控制结构是Go语言编程的基础组成部分,掌握它们对编写高效、清晰的代

2025-12-11 11:42:58 219

原创 Go之路 - 4.go的集合[完整版]

本文介绍了Go语言中四种常用的集合类型:数组、切片、映射和列表。数组是固定长度的同类型元素集合,切片是动态长度的数组,支持追加、删除等操作。映射是键值对集合,提供高效查找功能。列表通过container/list实现双向链表结构。每种类型都展示了基本用法和高级操作,包括多维数组、切片分块、map反转合并等实用技巧,涵盖了Go语言集合操作的核心知识点。

2025-12-11 11:32:36 279

原创 Go之路 - 3.go的数据类型与转换

Go语言类型系统分为基础类型和复合类型两大类。基础类型包括布尔型(bool)、整数型(int/uint等)、浮点型(float32/64)、复数型(complex64/128)和字符串(string)。复合类型包含数组(固定长度)、切片(动态数组)、映射(map键值对)、结构体(struct)、指针和函数类型。每种类型都有特定用途,如rune处理Unicode,byte处理二进制数据。类型系统设计强调简洁高效,支持类型推断和显式转换,同时通过零值初始化、严格类型检查等机制确保安全性。复合类型如切片和映射提供

2025-12-11 10:32:22 497

原创 vite+vue3 ssg预渲染方案

本文介绍了使用Vite+Vue3项目配置预渲染的完整方案。首先安装必要的依赖包,包括@prerenderer/rollup-plugin插件和Vue3、Vite基础依赖。然后通过配置vite.config.js文件,指定需要预渲染的路由路径,设置Puppeteer渲染器参数,并添加HTML后处理逻辑以优化输出。文中特别提供了可执行的配置代码片段,包括浏览器路径设置和空白字符清理等实用技巧。最后只需执行pnpm build命令即可完成预渲染。该方案经过验证可避免常见问题,为Vue项目实现SSR提供了一种简单可

2025-12-11 10:19:21 279

原创 Go之路 - 2.go的常量变量[完整版]

本文系统总结了Go语言变量声明与使用的核心知识点:1)变量声明方式包括标准var声明、初始化声明和短变量声明;2)未初始化变量会自动赋零值;3)匿名变量_用于忽略不需要的值;4)特殊用法如常量、指针、类型转换等;5)复合类型变量包括数组、切片、map和结构体的声明方法。关键要点包括短声明只能在函数内使用、显式类型转换、零值初始化机制和块作用域规则。这些基础语法是掌握Go语言编程的重要前提,建议通过实践加深理解不同声明方式的适用场景。

2025-12-10 17:11:24 207

原创 Go之路 - 1.gomod指令

本文提供了Go模块(GoModules)的简明使用指南,适用于Go1.11+版本。主要内容包括:1)通过gomodinit初始化项目;2)使用goget添加/更新依赖,推荐固定版本;3)通过gomodtidy自动管理依赖关系;4)构建运行程序的标准流程。指南强调了go.sum文件的重要性,并给出了日常开发推荐工作流:初始化→编码→添加依赖→整理依赖→测试运行。还介绍了查看依赖树和升级依赖的方法,提醒谨慎使用破坏性更新。遵循本指南可确保Go项目的依赖管理清晰高效。

2025-12-10 16:44:22 330

原创 React18+快速入门 - 5.受控组件与非受控组件

React表单组件分为受控和非受控两种类型。受控组件由React state完全控制,通过value属性绑定数据,onChange事件更新state,实现实时同步验证和提交。非受控组件则由DOM自身管理数据,通过ref获取值,性能更好但集成度低。文章详细介绍了各种表单元素(文本框、单选、复选、下拉框等)的受控实现方式,并展示了结合touched状态和验证函数的表单验证方案。受控组件适合需要复杂交互和验证的场景,而非受控组件更适合简单表单或性能敏感场景。

2025-12-09 16:09:42 458

原创 React18+快速入门 - 4.组件插槽

React中实现组件插槽的多种方法:1.使用props.children作为默认插槽接收任意JSX内容;2.通过props传递命名插槽实现多插槽布局;3.采用Render Props模式通过函数prop共享组件逻辑;4.将函数作为子组件使用,使子组件能访问父组件状态。这些方法使React组件更加灵活可复用,可根据不同场景选择合适的插槽实现方式。

2025-12-09 15:26:10 522

原创 React18+快速入门 - 3.组件通讯[完整版]

本文详细介绍了React中各种组件通信方式,包括基础到高级的解决方案:1)父子组件通过props向下传递数据;2)子组件通过回调函数向父组件传递数据;3)兄弟组件通过状态提升实现共享状态;4)跨层级组件使用Context API避免属性层层传递。每种方式都配有实际代码示例,如父子组件的数据传递、兄弟组件通过共同父组件通信、以及使用Context API实现跨组件数据共享。这些方法覆盖了React开发中常见的数据通信场景,开发者可根据具体需求选择合适的方式。

2025-12-09 15:06:06 512

原创 React18+快速入门 - 2.核心hooks之useEffect

本文详细介绍了 React 的 useEffect Hook 及其应用场景。主要内容包括:1) 基础概念和语法;2) 5种使用模式:每次渲染执行、仅挂载执行、依赖特定状态、多依赖项和清理函数;3) 实际应用示例:数据获取、事件监听、表单防抖和 localStorage 交互。文章通过代码示例展示了 useEffect 在不同场景下的正确使用方法,特别是依赖数组和清理函数的使用技巧,帮助开发者避免常见错误并提升组件性能。

2025-12-09 14:43:49 1118

原创 React18+快速入门 - 1.响应式机制之 useState 和 useReducer

本文详细介绍了React中两个核心状态管理Hook:useState和useReducer。首先讲解了useState的基础用法,包括三种初始化方式(直接值、函数初始化、对象状态)和四种更新状态的方法(直接设置新值、函数更新、部分更新对象、重置状态),并通过TodoList示例展示复杂状态管理。然后介绍了useReducer的基本概念,适合处理复杂状态逻辑,演示了reducer函数的三种写法(switch语句最常用),通过计数器示例说明如何使用dispatch派发不同action来更新状态。全文通过丰富代码

2025-12-09 14:34:24 547

原创 无需绑卡的海外地图

本文介绍了一种无需绑卡的海外地图展示方案。针对Google、Mapbox等地图服务需要绑卡注册的痛点,推荐使用Leaflet前端库配合免绑卡瓦片源的解决方案。文章提供了一个可直接使用的HTML代码示例,包含地图初始化、三种免绑卡瓦片源选择(OpenStreetMap、CartoDB、Wikimedia)、公司位置标记等功能。获取经纬度坐标可通过OpenStreetMap官网完成,只需替换代码中的坐标即可快速实现公司位置展示。该方案简单实用,有效解决了海外地图展示的难题。

2025-12-01 14:59:57 242

原创 Nuxt4提升SEO与搜索展示效果-结构化数据Schema.org

结构化数据是一种标准化格式,使用Schema.org词汇表帮助搜索引擎理解网页内容,从而在搜索结果中展示丰富摘要(Rich Snippets)。它能显著提升SEO效果,包括提高点击率、增强内容展示、获得特殊展示位等优势。常见类型包括产品、食谱、文章、活动、面包屑导航等,每种类型都有特定的数据格式要求,如产品需包含名称、价格、库存状态等信息。通过JSON-LD格式标记,可以优化网站在搜索引擎中的呈现效果。

2025-12-01 09:48:51 905

原创 [逆向] 2.加壳脱壳之UPX

UPX是一款开源可执行文件压缩工具,能减少程序体积50%-70%而不影响运行。文章介绍了UPX的核心概念(加壳/脱壳)、Windows环境下的安装配置方法,以及常用命令详解。特别强调了适用场景(C/C++等原生程序)与不适用场景(.NET/Java等)。提供了安全压缩工作流、批量处理技巧和构建流程集成建议,并针对常见问题给出解决方案。核心建议包括:确认程序类型、保留备份、立即验证和使用最新版本。UPX在合适场景下能显著优化程序分发效率。

2025-11-29 19:03:14 1401

原创 Nuxt 4 多语言网站SEO - 让谷歌精准收录各语言版本

本文详细介绍了在Nuxt 4项目中实现多语言SEO的完整方案。重点阐述了三种多语言网站结构(顶级域名、子域名、目录路径),并推荐使用目录路径方案。核心实现包括:建立清晰的URL结构、动态生成hreflang标签、设置HTML lang属性、多语言Meta标签配置以及自动生成多语言sitemap。文章还解析了搜索引擎抓取和索引多语言页面的完整流程,确保不同地区用户搜索时能正确显示对应语言版本。这套解决方案能有效提升网站在全球范围的搜索排名和用户体验,适用于支持多语言的Nuxt项目开发。

2025-11-28 14:14:05 918

原创 [逆向] 1.本地登录爆破

本文介绍了使用Node.js创建可执行文件并用调试工具进行爆破的过程。首先通过npm初始化项目,安装bun打包工具,编写包含账号验证的JavaScript代码,最后用bun打包成exe文件。随后使用dbg调试工具加载该exe,通过交互操作定位内存中的账号信息,演示了如何绕过简单的登录验证。整个过程展示了从代码编写到逆向分析的全流程,为前端开发者提供了一个基础的逆向工程示例。

2025-11-26 19:15:18 523

原创 软件卸载流程

本文介绍了彻底卸载软件的三个步骤:首先通过系统正常卸载程序;其次查找并删除用户配置文件目录中的相关文件夹;最后清除应用数据缓存中的残留文件。这三个步骤可确保软件及其相关数据被完全移除。操作时需使用Windows的运行窗口输入特定路径命令,检查并删除对应目录。该方法适用于大多数软件的彻底卸载需求。

2025-11-23 16:40:30 254

原创 前端如何快速抄网站

吐槽前端开发过程中频繁修改页面内容的困扰,介绍了一个实用工具——谷歌浏览器插件SingleFile。该插件可以快速将整个网页保存为单个HTML文件,操作简便:访问目标网页后点击插件图标,待进度条完成即可完成保存。这种方法为前端开发者提供了一种高效的页面内容复用方案,避免了重复开发的工作量。

2025-11-19 15:11:22 282 1

原创 前端牛马开发必用插件: code-inspector-plugin

Code-inspector-plugin是一款前端开发调试工具,支持在浏览器中直接定位源代码位置,适用于React、Vue和原生JS项目。通过简单配置即可集成到Vite等项目构建工具中,提供可视化开关和编辑器跳转功能(如VSCode),显著提升开发调试效率。安装仅需npm命令,配置示例展示了与Vite和Vue插件的协同使用方式。

2025-11-08 14:22:52 541

原创 linux挂载系统盘[ubuntu22 2025年11月]

本文详细介绍了Linux系统下挂载新磁盘的完整步骤:1)使用lsblk查看磁盘;2)通过fdisk对/dev/vdb分区;3)格式化为ext4文件系统;4)创建/data目录并挂载;5)验证挂载状态;6)使用blkid获取UUID并写入fstab实现开机自动挂载;7)测试配置正确性。整个过程涵盖了从分区到持久化挂载的全部操作,确保新磁盘可以永久用于数据存储。

2025-11-04 09:45:46 338

原创 前端没有3D知识,如何写一个性能不差的3D看房功能

本文介绍了如何利用Three.js和相关工具实现3D看房功能。作者分享了一个技术方案:首先使用sharp库将全景图片切割成4x4网格(行业标准的2:1比例),然后通过Photo Sphere Viewer的EquirectangularTilesAdapter实现分块加载,在Vue3框架中构建交互界面。该方法避免了复杂的着色器编程,适合基础开发者实现性能良好的3D全景展示功能。文章包含图片处理代码示例和前端实现方案,并建议使用云存储提升访问速度。

2025-10-31 16:55:53 399 1

原创 写官网要知道SEO的几件事

爬虫主要通过外链、sitemap提交、robots.txt引导和内部链接结构发现网页。新页面可通过更新sitemap、增加内部链接、API推送等方式让爬虫发现。即使未提交sitemap,爬虫也可能通过外链、DNS信息、用户搜索、社交分享或内部链接被动发现页面。建议主动提交sitemap到搜索引擎平台(如Google Search Console)以提高被发现概率。

2025-10-27 09:27:53 789

前后端+Bun.js运行时环境进行支付宝操作

这是一个简单的PC端网页,bun运行时环境,里面有支付宝的支付案例。

2026-03-14

vue3 navie ui ts 封装的Cron表达式生成器组件

vue3 navie ui ts 封装的Cron表达式生成器组件

2025-06-20

绘制地铁线路和模拟地铁移动

绘制地铁线路和模拟地铁移动

2024-11-27

json绘制热力图的热力信息json

json绘制热力图的热力信息json

2024-11-08

Vue3实现地图上加载柱体上的柱体json

Vue3实现地图上加载柱体上的柱体json

2024-10-30

Linux常用操作指令

非常常用

2023-04-23

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除