background picture of the home page

Ciallo~(∠・ω< )⌒★

秋秋的点心铺

Vue为什么是js写的而不是其它语言写的?

Vue选择JavaScript的核心原因在于前端开发的本质需求、JS特性及生态适配。浏览器仅支持JS运行,前端框架需直接操作DOM和浏览器API,JS是原生适配的唯一选择。JS的动态类型、函数式编程支持、原型链等特性,完美契合Vue响应式、灵活的设计目标;其成熟生态(npm、Webpack等)和全球最大开发者社区,降低了开发门槛。同时,JS作为前端事实标准,顺应历史趋势,而Java、Python等语言因编译步骤、静态类型限制或生态脱节,难以满足前端高效开发需求。综上,JS是浏览器环境的最优解,无需为“尝鲜”牺牲效率与生态。

thumbnail of the cover of the post

为什么要前后端分离

前后端分离是将前端页面渲染与后端数据处理拆分为独立部分的开发模式,解决了传统前后端耦合的痛点。传统模式下,开发效率低(协作困难、代码重复)、维护成本高(逻辑混在一起)、扩展性差(难以应对复杂交互)。分离后,前后端可并行开发,通过API协作,代码更清晰,维护成本降低;支持单页应用、多端适配、实时交互等复杂需求,扩展性增强;团队分工更高效,专注各自领域。其本质是“专业的人做专业的事”,通过API解耦提升开发效率,更好满足现代Web应用需求。

thumbnail of the cover of the post

输入网址后页面显示的流程是什么?

用户输入网址后,浏览器先检查缓存,若未过期则直接使用;否则进行DNS解析(域名转IP),再通过TCP三次握手建立连接。随后发送HTTP请求,服务器处理并返回响应(含状态码、响应体)。浏览器解析HTML构建DOM树、解析CSS构建CSSOM树,合并生成渲染树,经布局和绘制后显示页面。最后执行JS代码,监听用户交互,支持后续操作。整个过程耗时数百毫秒至数秒,优化缓存、DNS查询及资源压缩可提升加载速度。

thumbnail of the cover of the post

UDP和TCP的区别

TCP与UDP是传输层核心协议,分别追求“稳妥”与“速度”。TCP需建立连接(三次握手/四次挥手),提供可靠传输(不丢包、不乱序)、流式传输,头部较大(至少20字节),适用于网页浏览、文件下载等需数据完整的场景;UDP无需连接,不可靠传输(可能丢包)、数据报传输,头部仅8字节,适合视频通话、在线游戏等需实时性、低延迟的场景。运维监控中,客户端上报数据用TCP确保完整到达;高频实时指标若用UDP,需应用层自行处理丢包,核心逻辑为“稳妥选TCP,速度选UDP”。

thumbnail of the cover of the post

Http和WebSocket通信的区别

HTTP 和 WebSocket 是两种不同的网络通信协议,核心区别在于通信方向、连接状态和适用场景。 1. 通信方向:单向 vs 全双工 HTTP:单向请求-响应模式。 只能由客户端主动发起请求(比如打开网页、点按钮查数据),服务器收到请求后返回响应,之后连接就关闭了(HTTP/1.1 虽然支持长

thumbnail of the cover of the post

rbac是怎么写的?

本文详细介绍了基于RBAC的权限管理系统实现方案。核心包括:数据库设计采用五张表(用户、角色、权限及关联表)构建"用户-角色-权限-服务器"四者关系;服务端通过SpringSecurity整合JWT实现无状态认证,支持动态权限加载与版本控制;前端基于权限数据动态渲染菜单和按钮。系统通过服务器-角色关联表实现精细化权限控制,解决了权限缓存、JWT版本同步等关键问题,最终实现了不同账户管理不同服务器的灵活权限管理机制。

thumbnail of the cover of the post

websocket怎么写的?

本文基于WebSocket实现前端网页直接操作后端服务器的SSH功能。服务端采用Spring Boot,配置WebSocket端点与消息代理,通过JWT Token鉴权,用ConcurrentHashMap绑定WebSocket会话与JSCH会话,实现命令执行与结果实时返回,并处理断开时的资源清理。前端使用Vue3,结合SockJS、StompJS兼容浏览器,Xterm.js渲染终端,实现连接建立、命令发送、窗口调整及断开重连。关键解决多标签页会话独立、鉴权失败提示、命令输出流式发送等问题,确保实时性与准确性。

thumbnail of the cover of the post

MySQL中连表的问题是怎么解决的?左连接内连接之类的区别是什么?

在 MySQL 中,连表(多表连接查询)是处理多表关联数据的核心操作,主要用于从多个表中提取关联数据。以下从连表问题的解决思路、常见连接类型的区别(重点左连接 vs 内连接)两个方面详细说明: 一、MySQL 连表问题的解决思路 连表问题的本质是通过关联字段将多个表的数据按逻辑关系合并,核心步骤如下

thumbnail of the cover of the post

RabbitMQ的架构

RabbitMQ在项目中作为消息中间件,负责短信发送任务队列,实现异步处理与流量削峰。核心组件包括:服务端生产者封装任务发送至队列;专用队列配置持久化及死信处理;独立消费者监听队列,实现重试与批量处理。关键配置涵盖消息持久化、处理确认机制、流量控制及并发限制。该架构通过解耦业务逻辑、异步处理、削峰填谷及保障消息可靠性,确保短信发送高效稳定。

thumbnail of the cover of the post

监控数据是怎么获取推送到前端的?

该监控系统通过客户端、服务端、前端协同实现实时数据采集与展示。客户端采用oshi框架实时采集主机CPU、内存、磁盘等硬件系统数据,经Spring Quartz定时任务(如每30秒)收集后,以JSON格式通过HTTP请求上报至服务端。服务端接收数据并存入InfluxDB时序数据库,同时利用Redis缓存优化数据获取效率。前端通过WebSocket与服务端建立连接,实时接收监控数据并使用图表库(如ECharts)渲染展示,同时支持通过API从InfluxDB查询历史数据进行可视化呈现。

thumbnail of the cover of the post