首页 文章 精选 留言 我的

文章列表

共 223334 篇
JavaScript 中的 AbortController:如何优雅地取消异步任务

JavaScript 中的 AbortController:如何优雅地取消异步任务

在开发搜索框实时联想、文件上传进度控制或页面切换时中断数据请求等功能时,我们经常需要取消已经发出但不再需要的异步操作。以前用 XMLHttpRequest 可以直接调用 abort(),但换到 fetch 或一些返回 Promise 的异步函数后,取消就变得棘手。很多人在组件卸载后仍收到 setState 警告,或者因为旧请求覆盖新请求导致界面显示错误数据,...

别再用 JSON.parse(JSON.stringify()) 深拷贝了:循环引用、Date、RegExp 全给你整没了

别再用 JSON.parse(JSON.stringify()) 深拷贝了:循环引用、Date、RegExp 全给你整没了

处理嵌套对象的时候,很多人习惯用 JSON.parse(JSON.stringify(obj)) 来做深拷贝。这个写法确实够短,一行搞定,日常传个配置对象、拼个请求参数看起来也没出过什么问题。但只要对象里出现 Date、RegExp、Map、Set,或者存在循环引用、undefined、函数、Symbol 这类值,它就开始悄悄丢数据。拷贝出来的结果不是报错就...

#WorkBuddy# #AI办公# 开市前 24 小时预演:把 10/1 写下的恢复检查清单逐项跑完,11 个任务排期零漂移

#WorkBuddy# #AI办公# 开市前 24 小时预演:把 10/1 写下的恢复检查清单逐项跑完,11 个任务排期零漂移

10 月 8 日就要开市了。我在 10 月 1 日的调度体检篇里,给 11 个自动化任务盘出了一份假期空转预测,文末附了一份「开市日恢复检查清单」。10 月 2 日我又用真实执行记录校验了那份预测。但体检和校验都发生在假期中段——清单本身,还一次都没真正跑过。假期最后一天(10/7),我决定做一次开市前 24 小时预演:把检查清单逐项执行一遍,确认明天开市后...

海量数据下的分库分表:优化思路、利弊与四种拆分方式

海量数据下的分库分表:优化思路、利弊与四种拆分方式

流量包业务模型与数据量预估 简介:梳理账号服务里流量包的业务模型,预估数据量,引出分库分表的需求 业务模型 创建短链要消耗流量包,流量包是对外售卖的商品,可以叠加购买 一个用户会有多条流量包记录,类似订单记录 流量包商品 | 商品 | 每天可创建 | 有效期 | | --- | --- | --- | | 流量包一 | 5 次 | 1 个月 | | 流量包二...

从一次页面卡顿排查说起:理解浏览器的主线程与长任务

从一次页面卡顿排查说起:理解浏览器的主线程与长任务

上周同事反馈一个后台管理页面在点击「导出报表」后,整个界面会冻结两三秒,按钮点不动,下拉框也打不开。这个页面本身并不复杂,只是从接口拉几千条数据然后渲染到表格里,但卡顿程度完全不像几千行 DOM 该有的表现。打开 Performance 面板录制后发现,主线程上出现了一个接近 2 秒的 Long Task,期间没有任何渲染机会,用户的任何交互都被阻塞。这类问...

React 闭包陷阱:为什么你的定时器里拿不到最新的 state?

React 闭包陷阱:为什么你的定时器里拿不到最新的 state?

在 React 函数组件里,如果你在 useEffect 中启动了一个 setInterval,并且在回调里读取某个 state,十有八九会发现回调里拿到的永远是初始值。这不是 bug,而是 JavaScript 闭包和 React 渲染机制共同作用的结果。函数组件每次渲染都会创建全新的作用域,每个作用域里的 state 和 props 都是那一次渲染时的快...

用 IntersectionObserver 替代滚动事件:解决页面卡顿与图片懒加载的实战方案

用 IntersectionObserver 替代滚动事件:解决页面卡顿与图片懒加载的实战方案

页面滚动时监听 scroll 事件做懒加载、动画触发或吸顶效果,是很多项目里的常规做法。但滚动事件触发频率极高,如果在回调里直接读取 getBoundingClientRect() 或修改 DOM,很容易造成掉帧,尤其在低端安卓机上滑动会明显发涩。早期常见优化是加节流,但节流时间设长了效果滞后,设短了依旧频繁计算。IntersectionObserver 提...

JavaScript 中 Array.prototype.sort 的稳定性与比较函数陷阱

JavaScript 中 Array.prototype.sort 的稳定性与比较函数陷阱

最近在重构一个数据表格组件时,遇到一个看似简单却折腾了半天的 bug:明明按状态和时间排序,结果分页后部分行顺序乱跳。排查后发现根源是 Array.prototype.sort 的默认行为与比较函数返回值处理。在 V8 引擎中,数组长度小于等于 10 时使用插入排序,大于 10 时使用快速排序,而快速排序在旧版 V8 中是不稳定的。虽然 ES2019 已经要...

用 IntersectionObserver 替代滚动监听:更准、更省、更简单

用 IntersectionObserver 替代滚动监听:更准、更省、更简单

页面里做懒加载、无限滚动、元素曝光埋点、吸顶导航切换时,很多项目第一反应还是给 window 挂一个 scroll 事件监听,在回调里用 getBoundingClientRect() 或者 offsetTop 判断元素是否进入视口。这个做法能跑,但代价不小:滚动事件触发频率极高,哪怕加了节流,每次回调仍然可能触发同步布局计算,导致样式重算和绘制排队;如果判...

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

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

WebStorm

WebStorm

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

用户登录
用户注册