首页 文章 精选 留言 我的

文章列表

共 229937 篇
前端防抖节流:从手动实现到 AbortController 取消请求,说清楚几个容易搞混的细节

前端防抖节流:从手动实现到 AbortController 取消请求,说清楚几个容易搞混的细节

输入框搜索联想、窗口 resize 重排、按钮防重复提交这些场景里,防抖和节流几乎是条件反射就会用上的东西。但实际维护项目时我见过不少写法把两者用反,或者只做了延迟执行却忘了取消上一次的定时器。更麻烦的是加入异步请求之后:用户快速输入时,前面的请求可能后返回,把最新结果覆盖掉,表现就是搜索框里内容变了但列表还是旧的。这篇把防抖和节流的区别、可靠的手写实现、t...

React 中 useCallback 和 useMemo 到底该不该加?从一次列表卡顿排查说起

React 中 useCallback 和 useMemo 到底该不该加?从一次列表卡顿排查说起

上周排查了一个后台管理页面的卡顿问题,页面里有一个 200 行左右的数据表格,每行都渲染了一个带删除按钮的操作列。用户点击任意一行删除时,整个表格重新渲染,肉眼可见卡了半秒。打开 React DevTools 的 Profiler 录制后发现,明明只有一行数据变了,所有 200 行组件都重新执行了 render。团队里有人第一反应是“把事件处理函数用 use...

Vue 3 中 watch 和 watchEffect 的竞态问题:如何避免异步请求覆盖

Vue 3 中 watch 和 watchEffect 的竞态问题:如何避免异步请求覆盖

在 Vue 3 项目里用 watch 或 watchEffect 监听响应式数据变化并发送请求,是极其常见的模式。比如搜索框输入时实时查询、切换筛选条件重新拉取列表、路由参数变化后加载详情。一旦处理函数里包含异步操作,就很容易碰到竞态条件:先发出的请求可能比后发出的请求更晚返回,导致旧数据覆盖新数据。这个问题在开发环境和本地接口下往往不易复现,线上网络波动时...

前端路由刷新 404:从 devServer 到 Nginx 的完整排查路径

前端路由刷新 404:从 devServer 到 Nginx 的完整排查路径

单页应用用 history 模式上线后,用户点进二级页面再按 F5,浏览器直接返回 404,这是很常见的部署问题。它通常不是前端代码写错了,而是请求路径 /user/123 被服务器当成了真实目录或文件去查找,服务器找不到对应资源就返回 404。在本地开发时 Vite 或 webpack-dev-server 已经帮我们做了 fallback,所以不容易暴露...

别再在 useEffect 里直接写 async 了:清理函数、竞态和依赖项的真实处理

别再在 useEffect 里直接写 async 了:清理函数、竞态和依赖项的真实处理

React 的 useEffect 里用 async 函数获取数据这个写法,几乎每个项目里都能见到。大多数情况下页面看起来正常,但遇到路由快速切换、搜索框连续输入或者组件卸载时,控制台就会抛出警告,甚至出现旧请求覆盖新结果的情况。问题根源在于 useEffect 的副作用函数必须返回 undefined 或清理函数,而 async 函数永远返回 Promis...

在移动端 H5 里用 CSS 自定义属性实现主题切换,为什么 vh 和 rem 会互相干扰?

在移动端 H5 里用 CSS 自定义属性实现主题切换,为什么 vh 和 rem 会互相干扰?

做过移动端 H5 主题切换的人大概率踩过这个坑:用 CSS 自定义属性定义一套颜色变量,挂在 :root 上,然后靠切换 data-theme 来换肤,桌面浏览器和手机模拟器里都正常。可一旦放到真机上,尤其是 iOS Safari 和部分 Android 内置浏览器,页面在滚动地址栏收起/展开时,用了自定义属性的元素会出现高度跳变,或者 rem 计算出来的间...

Java转go,我用了12小时,10小时在解决环境问题

Java转go,我用了12小时,10小时在解决环境问题

一直在用Intelij Idea作为IDE进行开发。换了GO语言,我知道Intelij Idea是有go插件的,所以打算直接安装插件,不换工具。安装好插件后,make install执行都是正常的,就是引入包看着是标红的。这会对开发有极大影响:本身不熟悉这个语言,需要点击函数名直接定位到函数里面来跟踪源码,同时需要debug等手段定位问题。

改了 0 处却报成功:舞台工艺 Word 海量表格的 python-docx 安全改写实战

改了 0 处却报成功:舞台工艺 Word 海量表格的 python-docx 安全改写实战

你手里有一份篇幅不短的技术 Word——机械参数表、电气回路表、灯具点位表、验收记录表、材料清单一层层摞下来,表格数量上百。现在要统一一处表述:把散落在各张表里的旧术语改成新术语,或者把某个已作废的参数写法改成引用新条款的写法。用 Word 手工查找替换当然能做,但一键替换会把正文里的同名内容也改掉,还会顺手破坏表格样式,所以你决定写脚本。

飞牛OS部署Flare导航页:Docker Compose、YAML书签配置与cpolar公网访问

飞牛OS部署Flare导航页:Docker Compose、YAML书签配置与cpolar公网访问

飞牛 OS 上安装的服务逐渐增多后,往往会出现一个很实际的管理问题:每套应用都有自己的 IP、端口和访问路径。Docker 容器本身可以正常运行,但查找管理页面、整理常用网站、在不同设备间切换访问入口,仍然需要单独维护。对于 NAS、HomeLab 或个人开发环境,一个能够集中呈现链接的自托管导航页,通常比把所有入口散落在书签和文档中更方便。

风控开发指南:PHP集成运营商三要素简版V即时版查询实现精准合规审查

风控开发指南:PHP集成运营商三要素简版V即时版查询实现精准合规审查

在垂直医疗健康问诊平台的日常运营中,互联网首诊患者的实名建档与电子健康档案(EHR)合规管理是诊疗链路的核心前提。根据互联网诊疗监管规范,平台在为患者开通图文问诊、视频复诊以及流转电子处方前,必须确保就诊人姓名、公民身份号码与当前绑定的联系手机号处于真实、一致的实名登记状态,以保障处方用药安全、医保结算合规以及诊后随访触达的准确性。在传统的 PHP 医疗门户...

资源下载

更多资源
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文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

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

用户登录
用户注册