Hello World
这是使用 Next.js 14 重构的 Gal 主题博客的第一篇文章。 本博客采用以下技术栈: Next.js 14 - React 框架,使用 App Router TailwindCSS - 原子化 CSS 框架 shadcn/ui - 精美的 UI 组件库 Lucide Icons - 现代图标库 保留了原 Gal 主题的设计风格,同时使用现代化的技术栈重新实现。 得益于 Next.js 的...
Vue3-ECharts大数据量阶梯式动态加载
在工业物联网(IIoT)场景下,历史数据查询往往涉及海量数据点。如果一次性加载跨度为一年甚至更久的所有秒级/分钟级数据,会面临以下问题: 后端压力大:数据库查询和传输耗时过长。 前端渲染卡顿:ECharts 需要处理百万级数据点,导致浏览器崩溃或交互极度卡顿。 网络传输慢:巨量 JSON 数据传输阻塞网络。 为了解决这个问题,我们在 页面实现了阶梯式动态加载(Step-by-step Dynami...
Element UI 常用组件实践:Carousel、Pagination、Dropdown
当下拉项里有复选框、输入框、二次确认操作时,默认点击即关闭会影响交互。 可通过 保持菜单展开。 分页点击没反应:忘记监听 或没触发重新请求。 轮播图不显示:父容器高度为 0,或图片地址 404。 Dropdown 点击即关闭:没设置 。...
Java 爬虫实战:JSoup 抓取与 403 处理
请求列表页 HTML。 用选择器提取图片详情页链接或图片真实地址。 下载文件到本地目录。 处理 403、超时、重复下载等异常。 一些站点会拒绝默认 Java 请求头,常见现象是: 可通过 设置 、 等请求头提高成功率。 403:补齐 ,必要时加 。 下载慢:降低并发或分批抓取,避免被限流。 空链接:选择器失效,先打印 HTML 片段排查。 文件覆盖:按 URL 或哈希去重命名。 优先抓公开页面并遵...
Vue 组件通信与渲染时机踩坑汇总
推荐使用对象写法,便于类型、默认值和必填约束。 子组件通过事件抛出数据,父组件监听事件并处理。 数据刚修改后,DOM 还没完成更新。依赖真实 DOM 的逻辑要放进 。 典型场景: 列表异步加载后测量高度。 切换后初始化第三方插件。 表格数据更新后自动滚动到底部。 如果模板里直接访问 ,那就要保证 初始值存在。 否则接口返回前,模板渲染可能报 。 在非箭头函数或第三方回调里, 可能不是 Vue 实例...
uni-app 页面通信与数据缓存实践
会保留当前页面栈,并跳转到新页面。 在目标页 中读取参数: 对象不能直接拼到 URL,先 再编码,目标页再解码解析。 当 URL 参数过长或需要实时回传数据时,优先用 。 适合不在父子关系里的页面或组件通信。 在 对对应页面配置 : 简单参数用 URL,复杂对象优先 。 使用全局事件后,页面销毁时一定 。 缓存对象统一 JSON 结构,读取时提供默认值,避免空值报错。...
.NET Redis 工具类封装实践
在 .NET 项目中使用 Redis,通常基于 库。本文介绍如何封装一个功能完整、易于使用的 Redis 工具类。 统一管理键名前缀,避免多项目键名冲突: 配置类示例: 使用示例: 这个 Redis 工具类封装了常见的 Redis 操作,具有以下特点: 统一键前缀:避免多项目键名冲突 对象序列化:自动 JSON 序列化/反序列化 连接管理:自动重连、事件通知 分布式锁:简单易用的锁操作 发布订阅:...
.NET WebSocket 实时通知服务设计
在工业监控系统中,前端需要实时展示设备状态、告警信息和各模块的在线状态。本文介绍如何使用 .NET WebSocket 实现一个统一的实时通知服务。 多客户端 WebSocket 连接管理 模块心跳监控与状态同步 日志推送与未读计数 用户会话踢出(单点登录配合) 使用 ConcurrentDictionary 管理 WebSocket 连接: 通过 Redis Pub/Sub 订阅各模块心跳: 使...
.NET 8 分布式工业控制系统架构设计
本文介绍一个基于 .NET 8 的分布式工业控制系统架构。该系统用于钢厂智能燃烧控制,包含以下核心模块: SteelMill.Api:Web API 服务,提供 RESTful 接口 SteelMill.Dms:数据采集服务,从硬件设备采集数据 SteelMill.Ice:算法引擎服务,执行控制算法 SteelMill.SoftDog:看门狗服务,监控其他服务状态 SteelMill.Client...
.NET 8 模块化初始化架构设计
在开发分布式系统时,我们常常会遇到这样的问题:不同模块(如 API 服务、数据采集服务、算法引擎)对基础设施的需求各不相同。API 模块需要完整的数据库、Redis、JWT 认证,而看门狗服务可能只需要 Redis。如何设计一个灵活的初始化架构来应对这种差异? 本文将分享一种基于 .NET 8 的模块化初始化模式。 首先定义一个配置类,用于控制各模块的初始化行为: 根据模块名称自动配置初始化选项:...