- 博客(62)
- 收藏
- 关注

原创 原生js图片懒加载 面向对象+队列管理和并发控制+节流+模块化+可配置
本文介绍了一个图片懒加载解决方案的实现,通过IntersectionObserver API智能检测图片是否进入视口,采用队列管理和并发控制机制优化加载性能。核心功能包括: 预加载边界设置 并发加载控制(默认3张) 加载状态可视化(旋转指示器) 浏览器兼容性降级处理 调试日志系统 该方案实现了高效的图片按需加载,同时保证页面性能,适合图片密集型网页应用。
2025-06-10 01:27:08
393

原创 揭秘B站视频秒播技术:m4s与SourceBuffer的奥秘
B站视频播放速度快的原因在于其采用了m4s分段存储技术,通过range请求动态下载视频片段,并利用SourceBuffer进行实时播放。这种技术允许根据进度条动态加载视频片段,边播边下载,确保流畅播放。调试过程中,通过过滤206状态码和Content-Range信息,验证了视频片段的动态加载机制。此外,SourceBuffer将视频数据存储在内存中,通过MediaSource对象管理,确保高效播放,但数据不会持久化存储。最后,通过Java代码示例展示了如何从B站获取视频和音频URL并下载到本地。
2025-05-10 16:56:16
1019

原创 【重生之我在B站学MySQL】
InnoDB存储引擎:支持事务、行级锁定和外键MRG_MYISAM存储引擎:收集相同的MyISAM表MEMORY存储引擎:基于哈希的,存储在内存中,对临时表有用BLACKHOLE存储引擎:写入到这的数据会被销毁MYISAM存储引擎:不支持事务CSV存储引擎:CSV存储引擎ARCHIME存储引擎:存档类型的存储引擎显示当前数据库支持的存储引擎。
2024-12-10 23:03:37
2379
原创 解决前端缩放footer跑上来footer下面留白
这段CSS代码定义了一个网页的基本布局样式。主要特点包括:html元素设置最小高度为100vh,body采用清爽的背景和字体样式,底部预留60px空间给固定高度的footer。main内容区通过flex布局自动填充剩余空间,并计算最小高度确保内容完整显示。footer采用绝对定位固定在页面底部,高度60px,带有背景色和文字居中。整体布局简洁,确保页面在不同设备上都能正确显示主要内容并保持页脚固定。
2025-06-11 18:34:39
36
原创 【手动触发浏览器标签页图标自带转圈效果】
摘要: 代码展示了一个阻塞主线程的JavaScript函数slowFunction(),该函数通过2秒的while循环模拟耗时操作,导致页面卡顿。效果图以GIF形式呈现了页面冻结的状态。这个示例演示了同步代码对网页性能的影响,建议在实际开发中使用异步方法避免阻塞。
2025-06-07 23:06:14
497
原创 网页标题loading效果实现
这段代码实现了一个网页标题栏的转圈动画效果,包含以下功能点: 使用一组Unicode字符(frames数组)作为动画帧序列 通过startSpinner()启动80毫秒间隔的定时器循环切换字符 通过stopSpinner()清除定时器并恢复原始标题 代码示例默认运行3秒后自动停止(通过setTimeout) 包含防止重复启动的逻辑检查(intervalId判断) 实现了一个简单但有效的网页加载指示器,适合用于异步操作时的视觉反馈。
2025-06-07 21:59:21
64
原创 【解决导航栏字体图标渲染导致文本闪烁问题】采用腾讯视频的解决方案
摘要:针对导航栏中字体图标与文本同时出现时的闪烁问题,本文推荐腾讯视频采用的解决方案。通过CSS布局调整,使用flex布局结合direction:rtl属性,将图标和文本反向排列。关键点包括:1)为父容器设置flex布局和rtl方向;2)固定图标容器尺寸;3)使用绝对定位精确定位图标。HTML结构上采用反向嵌套方式,先放置文本div再放置图标div,有效解决了渲染时的闪烁问题。(138字)
2025-06-07 00:47:15
222
原创 【手搓一个原生全局loading组件解决页面闪烁问题】
添加了 <global-loading> 自定义元素。引入了 global-loading.js 文件以支持组件功能。创建了一个新的 Web Component GlobalLoading。在组件中定义了 loading 动画的 HTML 和 CSS。实现了 init 方法,监听 window 的 load 事件并在页面加载完成后隐藏 loading 动画。将 loading 动画的样式封装在组件内部,避免污染全局样式。
2025-05-31 14:44:36
473
原创 使用原生前端技术封装一个组件
本文介绍了如何封装一个可重用的导航栏组件,包含三个部分:模板文件(navbar-template.html)、JavaScript组件(navbar.js)和使用说明。导航栏模板采用HTML结构,包含主页、非遗项目、传承人、活动、关于我们和用户中心等主要菜单项,每个菜单都有相应的图标和子菜单。JavaScript部分实现了一个自定义元素NavBar,使用Shadow DOM加载模板和样式。使用方法简单,只需在HTML中添加<nav-bar>标签即可。整个封装方案采用现代Web组件技术,便于维护和
2025-05-30 22:51:50
515
原创 快速扩容VHD文件的DiskPart命令指南
使用DiskPart命令扩容VHD文件打开命令提示符,输入diskpart选择VHD文件:select vdisk file="e:\dev.vhd"卸载VHD:detach vdisk扩容到指定大小(MB):expand vdisk maximum=15000重新挂载:attach vdisk列出并选择卷:list volume后select volume F扩展空间:extend
2025-05-25 23:08:25
287
原创 接口开发与微服务调优全攻略
本文总结了接口开发全流程的关键要点:1)接口定义需明确协议、请求响应格式及文档生成;2)开发流程包括阅读文档、代码生成、单元测试等步骤;3)异常处理采用统一异常处理器;4)跨域问题可通过JSONP、响应头或Nginx解决;5)微服务间调用使用Feign,配合熔断降级机制预防雪崩效应;6)雪崩防护需结合熔断、降级、限流策略。文章系统性地梳理了从接口设计到微服务调用的核心开发要点,为构建健壮的接口服务提供了实用指导。
2025-05-23 21:53:56
805
原创 高效选课系统:一键管理你的课程表
文章摘要:本文介绍了选课流程及其相关数据模型,重点展示了“我的课程表Controller”和“我的课程表服务”的实现细节。Controller部分提供了添加选课、查询学习资格和获取课程表的功能,服务部分则详细描述了如何添加选课记录,特别是免费课程的处理逻辑。通过调用内容管理服务获取课程信息,并根据课程收费规则进行相应的处理,最终将选课记录写入数据库。
2025-05-20 12:22:13
546
原创 课程发布与学习流程全解析
本文介绍了课程发布和学习服务的关键代码实现。课程发布Controller通过getPreviewInfo方法获取课程发布信息,包括课程基本信息和课程计划信息。学习服务中的getVideo方法用于获取课程学习视频地址,首先验证课程和课程计划的存在性及试学资格,然后根据用户登录状态和课程收费规则返回视频播放地址。findTeachplanDtoById方法则用于从课程计划列表中查找指定ID的课程计划对象。这些功能模块共同构成了课程发布与学习服务的核心逻辑。
2025-05-20 12:20:59
196
原创 支付流程与订单服务设计全解析
本文主要介绍了支付流程、通用订单服务设计以及支付接口的调研,重点探讨了支付宝的开发环境配置。支付流程部分展示了相关流程图,通用订单服务设计则通过图示说明了订单服务的架构。支付接口调研部分详细分析了微信和支付宝的支付接口,并提供了支付宝开发环境的配置指南,包括沙箱账号的获取、支付宝SDK的依赖配置、Nacos配置文件的使用以及二维码生成工具的实现。通过这些内容,开发者可以快速搭建和调试支付系统,确保支付流程的顺畅和安全。
2025-05-18 22:16:08
301
原创 认证授权:掌握用户身份与权限管理
认证授权是管理用户身份和权限的关键机制。在项目中,用户(如学生、老师、平台运营人员)访问受保护资源时,需通过身份认证(如用户名密码登录、微信扫码等)验证身份合法性。认证通过后,还需进行用户授权,判断用户是否有访问特定资源的权限。项目采用统一认证服务,用户认证后获得令牌,凭令牌访问系统资源。基于微服务架构,项目支持单点登录(SSO),用户只需认证一次即可访问多个系统。此外,项目还支持第三方认证(如微信扫码登录),简化用户操作并促进资源共享。Spring Security和OAuth2框架用于实现认证授权,支持
2025-05-16 17:28:02
455
原创 探索B站 bili-fe-mirror v2.0.2的炫酷控制台效果
这段代码使用 console.info() 方法在控制台中输出带有样式的信息。字符串 "bili-fe-mirror" 和版本号 "v2.0.2" 分别应用了不同的 CSS 样式。第一个部分 "bili-fe-mirror" 使用粉色背景(#FF6699)、白色文字、加粗字体,并带有左圆角;第二部分 "v2.0.2" 使用浅粉色背景(#FF9999)、白色文字、加粗字体,并带有右圆角。这种设计使得输出内容在控制台中更加醒目和美观
2025-05-12 19:36:37
314
原创 【揭秘浏览器反调试代码的破解技巧】
本文介绍了浏览器反调试的几种常见方法,包括清空控制台、无限debugger、监听控制台是否打开、加密响应数据、JS混淆源码、请求源校验等。同时,文章也提供了破解这些反调试手段的方法,如使用hook、条件断点、抓包改包、清除定时器等。这些技术手段旨在保护代码安全,防止被调试和篡改,同时也为开发者提供了应对反调试策略的解决方案。
2025-05-11 16:39:06
501
原创 Linux快速入门
1.执行maven的父工程中的package生命周期,对项目进行打包【打包之前,先连接上服务器数据库,先测试通过】。2.在linux)服务器的/usr/local目录下,创建一个目录tlias-app,将jar包上传到服务器的/usr/local/tlias-app目录中。3.然后在命令行执行命令,运行jar包:java -jar xxxxxx.jar上述执行运行jar包之后,会占用前台窗口,窗口关闭服务也就停了。可以使用nohup指令,后台运行服务,执行指令:nohup java -jar
2025-05-09 23:14:13
851
原创 掌握单元测试:提升软件质量的关键步骤
软件测试是确保软件正确性、完整性、安全性和质量的关键过程,通常分为单元测试、集成测试、系统测试和验收测试四个阶段。测试方法包括白盒测试、黑盒测试和灰盒测试,分别针对代码结构、功能需求和两者结合进行。单元测试专注于最小功能单元,如方法,使用测试框架如Unit等工具进行。测试过程中,断言用于验证代码行为,常见注解如@Test标记测试方法,参数化测试则通过不同输入覆盖多种情况。单元测试覆盖率是衡量测试完整性的重要指标,而依赖范围决定了测试中使用的库或框架的适用范围。
2025-05-09 23:07:59
423
原创 探索Stream流:高效数据处理的秘密武器
本文主要介绍了不可变集合和Stream流的相关概念与使用方法。不可变集合指一旦创建后内容不可更改的集合,适合在多线程环境下保证数据安全。Stream流则是一种用于处理集合数据的流式操作工具,使用步骤包括获取流、中间操作和终结操作。中间方法返回新的Stream流,支持链式编程,且不会影响原始数据。终结方法则用于最终处理数据并生成结果。通过Stream流,开发者可以更简洁高效地处理集合数据。
2025-05-09 23:02:17
252
原创 Git全攻略:从入门到精通
Git 是一个分布式版本控制系统,广泛用于代码管理和协同开发。它解决了代码备份、版本控制、协同工作和责任追溯等问题。与集中式版本控制系统(如 SVN)不同,Git 允许每个开发者拥有完整的代码历史记录,即使服务器故障也能恢复数据。Git 的基本工作流程包括创建本地仓库、添加文件、提交更改和查看日志等操作。分支管理是 Git 的重要功能,允许开发者在不同分支上并行工作,避免影响主线开发。远程仓库(如 GitHub 和码云)提供了代码托管和协作平台,开发者可以通过 SSH 公钥进行安全连接,并将本地代码推送到远
2025-05-09 22:57:20
988
原创 课程审核流程揭秘:确保内容合规与用户体验
课程发布流程涉及多个步骤,首先课程创建后处于“未提交”和“未发布”状态。教学机构完成编辑后提交审核,状态变为“已提交”。运营平台审核后,课程可能通过或不通过审核。无论结果如何,教学机构可修改课程并重新提交审核。审核通过后,教学机构可发布课程,状态变为“已发布”。发布后,课程可被下架,之后还可重新上架。此外,课程提交审核后仍允许修改,以便添加更多内容如课程计划和视频。提交审核的代码确保只有符合条件的课程才能提交,涉及查询和更新多个数据库表,包括课程基本信息和预发布表。
2025-05-09 22:28:16
507
原创 【Java idea配置】
但是是更新到2.10版本以后,控制台中就无法显示彩色日志了,各种级别的日志混杂在一起,难以阅读。IDEA中,点击右上角->Edit Configurations,在VM options中添加。如果你使用的 application.yml 为配置文件的话。ctrl + alt + t 生成包围如try catch。这里如果不配置的话,你的日志系统中将不会显示为彩色的日志。ctrl + shift + m 在花括号跳转。2.10以前的版本,pattern中配置。ctrl + alt + m 抽取方法。
2025-05-04 23:34:37
791
原创 【循环依赖(Circular Dependency)】
- `BigFilesController` 依赖 `MediaFileServiceImpl`(通过构造函数注入)。- `MediaFileServiceImpl` 又依赖某个 Bean(可能是自身或其他 Bean),导致循环。
2025-05-04 15:47:08
350
原创 【系统参数合法性校验】spring-boot-starter-validation
前端请求后端接口传输参数,是在controller中校验还是在Service中校验?答案是都需要校验,只是分工不同。Contoller中校验请求参数的合法性,包括:必填项校验,数据格式校验,比如:是否是符合一定的日期格式,等。Service中要校验的是业务规则相关的内容,比如:课程已经审核通过所以提交失败。Service中根据业务规则去校验不方便写成通用代码,Controller中则可以将校验的代码写成通用代码。
2025-04-29 22:31:39
552
原创 【黑马 微服务面试篇】
BASE理论是对CAP的一种解决思路,包含三个思想:BasicallyAvailable(基本可用):分布式系统在出现故障时,允许损失部分可用性,即保证核心可用。SoftState(软状态):在一定时间内,允许出现中间状态,比如临时的不一致状态。EventuallyConsistent(最终一致性):虽然无法保证强一致性,但是在软状态结束后,最终达到数据一致。
2025-04-25 21:07:51
835
原创 黑马 redis面试篇笔记
限制一个master.上的slave节点数量,如果实在是太多slave,则可以采用主-从-从链式结构,减少master压力。到的结果与16384取余,就计算出了这个key的slot值。内存淘汰:就是当Redis内存使用达到设置的阈值时,Redis:主动挑选部分key删除以释放更多内存的流程。如果slave-prority一样,则判断slave节点的offset值,越大说明数据越新,优先级越高。◆volatile-ttl:对设置了TTL的key,比较key的剩余TTL值,TTL越小越先被淘汰。
2025-04-24 21:11:02
732
原创 黑马商城-微服务笔记
需求:在网关中基于过滤器实现登录校验功能提示:黑马商城是基于WT实现的登录校验,目前相关功能在hm-service模块。我们可以将其中的WT工具拷贝到gateway模块,然后基于GlobalFilter来实现登录校验。
2025-04-23 14:07:45
959
原创 【某探花线路测速页面分析】
标签)来检测多个 URL 的加载速度,并在表单中显示结果。:生成一个表单,表单中包含多个输入框和按钮,用于显示 URL 加载速度或状态。这段代码实现了一个简单的网页脚本,用于动态生成一个表单,通过加载图片(),根据加载时间更新表单中对应 URL 的状态。在表单的底部添加一个按钮,点击时刷新页面(标签)来检测每个 URL 的加载速度。用于动态写入 HTML 内容到页面。使用更安全的方式生成 HTML。:处理图片加载失败事件(:通过加载隐藏的图片(实现准确的加载时间测量。图片加载检测的局限性。
2025-04-21 21:57:50
613
原创 centos时间不正确解决
为了确保系统时间准确,建议使用 NTP(网络时间协议)服务同步时间。:查看 NTP 或 Chrony 的日志文件以获取更多信息。:确保防火墙允许 NTP 流量(UDP 123 端口)。:如果启用了 SELinux,确保没有阻止时间同步服务。:确保服务器可以访问 NTP 服务器。CentOS 7 及以上版本默认使用。是否为有效的 NTP 服务器地址。标记的 NTP 服务器。NTP 日志(如果使用。
2025-04-15 13:26:25
1270
原创 使用scoop一键下载jdk和实现版本切换
安装openjdk8scoop install openjdk8-redhat切换版本jdk15scoop **reset** openjdk15
2025-04-08 22:13:33
1154
原创 若依原理笔记
Spring Security:是一个功能强大的ava安全框架,它提供了全面的安全认证和授权的支持。与RBAC模型结合使用时,Spring Security能够实现灵活权限控制。
2025-04-07 19:03:14
303
原创 有效市场假说
三:如果股票价格的日常波动像每天的彩票数字一样难以预知,那么在股市中赚到钱的人或许就像是中了彩票一样。二:赌徒在概率游戏中的资金波动构成了《随机游走》(属于单向随机游走,因为财富值只能向上或向下波动)。有效市场假说的3种版本共同点:没有人拥有有效的股票市场"内幕消息”。巜弱式有效市场假说》:你无法通过过去的价格了解推测股票未来的价格,进而战胜市场。《半强式有效市场假说》:无论如何利用公共信息都是无法战胜市场的。《强式有效市场假说》:即使你能够了解到内幕信息,你也无法战胜市场,“内幕交易"毫无价值。
2025-04-07 10:27:33
337
原创 【Java 马踏棋盘算法】韩顺平笔记
1.马踏棋盘算法也被称为骑士周游问题2.将马随机放在国际象棋的8×8棋盘Board[07][07]的某个方格中,马按走棋规则(马走日字)进行移动。要求每个方格只进入一次,走遍棋盘上全部64个方格3.游戏演示:4.会使用到图的遍历算法(DFS)+贪心算法优化1.马踏棋盘问题(骑士周游问题)实际上是图的深度优先搜索(DFS)的应用。
2024-12-22 15:22:29
1014
原创 【java 正则表达式 笔记】
1.根据groups[0]=0和groups[1]=4的记录的位置,从content开始截取子字符串返回。PatternSyntaxException是一个非强制异常类,它表示一个正则表达式模式中的语法错误。配模式,这个我们称为反向引用,这种引用既可以是在正则表达式内部,也可以是。我们可以用圆括号组成一个比较复杂的匹配模式,那么一个圆括号的部分我们可。的组里,方便后面引用,从左向右,以分组的左括号为标志,第一个出现的分组。圆括号的内容被捕获后,可以在这个括号后被使用,从而写出一个比较实用的匹。
2024-12-22 00:42:33
1405
原创 【韩顺平 Java满汉楼项目 控制台版】MySQL+JDBC+druid
软件分层是逻辑概念1.可以用不同包来存放对应的类2.体现了一个调用的关系3.可以各司其职。
2024-12-18 22:02:10
1157
原创 【韩顺平Java JDBC学习笔记】
1.JDBC为访问不同的数据库提供了统一的接口,为使用者屏蔽了细节问题。2.Java程序员使用JDBC,可以连接任何提供了JDBC驱动程序的数据库系统,从而完成对数据库的各种操作。@Testtry {// 关闭资源马云的余额减少了马化腾的余额缺没有增加,银行很开心)";System.out.println("开始执行");i < 5000;i++) {System.out.println("结束执行");
2024-12-15 17:13:24
994
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人