首页 文章 精选 留言 我的

文章列表

共 215422 篇
CSS scroll-driven animations:用滚动进度替代JS监听,减少卡顿

CSS scroll-driven animations:用滚动进度替代JS监听,减少卡顿

页面里做滚动驱动的动画,过去基本靠 scroll 事件加 requestAnimationFrame,再手动计算 scrollTop 和目标元素的位置。这种写法在桌面端通常没事,一到移动端或者滚动容器嵌套比较深的时候,掉帧就很明显。原因是 scroll 事件触发频率极高,回调里如果有 getBoundingClientRect() 这类强制同步布局的操作,主...

浏览器中 JS 定时器不准确且后台被节流,如何用 requestAnimationFrame 和 Web Worker 补偿

浏览器中 JS 定时器不准确且后台被节流,如何用 requestAnimationFrame 和 Web Worker 补偿

在开发在线协作白板、实时倒计时、动画播放器或轮询任务时,很多人会发现 setTimeout 和 setInterval 在浏览器里并不准时。页面切到后台、CPU 繁忙、或者显示器刷新率变化时,定时器回调可能延迟几百毫秒甚至更久。这不是 bug,而是浏览器为了省电和减少后台消耗做的主动限制。另外,setInterval 每次回调之间的间隔并不等于你设定的毫秒数...

Vue 3 中动态组件的 keep-alive 缓存失效问题与解决方案

Vue 3 中动态组件的 keep-alive 缓存失效问题与解决方案

在一个后台管理系统中,我们经常用 <component :is="currentTab"> 配合 <keep-alive> 来缓存不同标签页的组件状态。但最近遇到一个奇怪的现象:当用户切换标签时,部分组件的滚动位置和表单输入没有被保留,而另一些却正常。排查后发现,问题出在动态组件的 key 和 include 属性上——当组件通过 defineAsyncCo...

计算机底层颠覆性创新

计算机底层颠覆性创新

反正情况就是这么个情况。 重新定义符号系统的默认值。 83F801=83F855 中文母表词条:808条。其中:并发。(并+发的中文二进制机器码)查表直出。 借用了linux的逻辑。架构,算法。思维。 没抄字节。 物理事实是X86的计算机。 虚拟机和物理机双跑通。物理机有时钟跳动,键鼠协作。 现有已知所有驱动硬件,系统生态。(有规划百分百兼容方案,需要调试测...

Vue 3 中 watch 和 watchEffect 的依赖收集差异:一次线上内存泄漏的排查记录

Vue 3 中 watch 和 watchEffect 的依赖收集差异:一次线上内存泄漏的排查记录

上个月我们后台管理系统的一个数据看板页面,在用户频繁切换筛选条件后,浏览器内存占用从 80MB 一路涨到 600MB 以上,页面明显卡顿,甚至偶发崩溃。这个页面用了 Vue 3 的 watch 监听筛选条件变化去请求接口,但代码里有一个容易被忽略的写法:在 watch 回调里又创建了一个 watchEffect。排查后发现,问题出在两套响应式 API 对依赖...

用 AbortController 取消重复的 fetch 请求:从搜索框到路由切换的完整实践

用 AbortController 取消重复的 fetch 请求:从搜索框到路由切换的完整实践

在开发后台管理系统或带实时搜索功能的页面时,重复请求是个很容易被忽略的问题。比如用户在搜索框里连续输入“vue”,每次键盘弹起都触发一次 fetch,如果网络稍微慢一点,后发的请求可能先返回,最终页面上显示的是“v”对应的旧结果。同样,在单页应用里快速切换路由,组件已经卸载,但之前发起的请求还在飞,回调里试图 setState 或操作 DOM,控制台就会报错...

在前端项目中定期清理 localStorage:一个容易被忽视的过期策略

在前端项目中定期清理 localStorage:一个容易被忽视的过期策略

做后台系统时经常把一些不敏感的状态塞进 localStorage,比如展开的菜单、表格列宽、临时筛选条件。时间一长,这些键值越积越多,用户换了设备或者需求变更后,旧数据反而成了脏数据来源。更麻烦的是,有些缓存其实带有时间语义,比如接口返回的城市列表,超过一天就应该失效重新拉取,但 localStorage 本身没有过期机制。手动在每次读取时写 if (Dat...

一次由 AbortController 引发的 unhandledrejection 排查记录

一次由 AbortController 引发的 unhandledrejection 排查记录

前端项目里用 fetch 做请求取消的场景越来越常见,尤其是搜索框输入防抖、路由切换或者组件卸载的时候,如果不把进行中的请求取消掉,轻则状态错乱,重则控制台一直往外抛 unhandledrejection。前阵子我在一个后台项目里就碰到了这么个事:用户快速切换标签页,每个标签页初始化时都会发一次列表请求,网络慢的时候切换五六次,控制台就会冒出 AbortEr...

源码交付!城市公共生命线安全AI预警平台

源码交付!城市公共生命线安全AI预警平台

我们这次实施的城市公共生命线整体方案,把供水、供电、供气、交通、通信五类设施连成“感知—分析—预警—处置—管理”闭环。对顶层、行业企业和运维单位,这是一套可落地、可运营、可扩展的城市安全底座。架构采用五层:感知层覆盖管线、桥梁隧道、综合管廊和环境辅助监测;传输层用光纤+5G+NB-IoT+LoRa混合组网;平台层由物联网平台、数据中台、AI平台、数字孪生平台...

用 IntersectionObserver 替代滚动监听:解决长列表页面卡顿与重复触发

用 IntersectionObserver 替代滚动监听:解决长列表页面卡顿与重复触发

在做后台管理系统或者内容 feed 流时,经常遇到“滚动到某个区域才加载更多”或者“元素进入可视区域后播放入场动画”的需求。最早我们普遍用 scroll 事件监听配合 getBoundingClientRect 计算位置,简单场景没问题,但随着列表变长、DOM 节点变多,滚动时频繁触发布局计算和重绘,页面掉帧明显,而且节流参数没调好会出现加载两次、动画闪烁。...

昨晚 GPT-6 Sol、Luna 上线了我第一时间试用了,写写给我感受

昨晚 GPT-6 Sol、Luna 上线了我第一时间试用了,写写给我感受

前几天我才写了过一篇关于GPT-6 Sol 传闻的文章,当时 Sol 还没有正式发布但网上已经有不少消息了,之前那篇文章里我一直强调,看到的很多消息都只能算是猜测,最终还是要以 OpenAI 官方发布为准,有兴趣的可以找找之前的发布历史。 可是没想到这么快就来了,就在昨晚 OpenAI 正式上线 GPT-6 Sol 和 GPT-6 Luna 早晨我看到这侧新...

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册