首页 文章 精选 留言 我的

文章列表

共 232615 篇
pdf页面显示不全,先用浏览器对照,再按 5 步排查缩放和导出设置

pdf页面显示不全,先用浏览器对照,再按 5 步排查缩放和导出设置

PDF 页面显示不全,先用两种打开方式对照一次,就能分清责任在文件还是在阅读器。把同一份文件拖进 Chrome 或 Edge 窗口,或者在地址栏输入 file:///D:/test.pdf 回车,浏览器里内容完整、本机阅读器里缺内容,问题就在缩放和视图模式;两处都缺,说明内容在生成时就被排到了页面外。

Vue 3 中 v-model 在自定义组件上的多个绑定与修饰符实战

Vue 3 中 v-model 在自定义组件上的多个绑定与修饰符实战

在 Vue 3 项目里封装表单组件时,经常遇到一个组件需要同时绑定多个字段的场景,比如一个地址选择器要同步更新省、市、区三个值。很多开发者习惯给每个字段单独写 props 和 emit,代码冗长且容易漏掉同步逻辑。Vue 3 的 v-model 支持参数和修饰符,允许在同一个组件上使用多个 v-model,比如 v-model:province、v-mode...

浏览器事件循环中微任务与渲染时机:从requestAnimationFrame说起

浏览器事件循环中微任务与渲染时机:从requestAnimationFrame说起

页面滚动时用 requestAnimationFrame 做动画,常会遇到“明明改了样式但下一帧没生效”或者“微任务里的 DOM 操作被推迟到下一帧”的怪事。这类问题大多跟浏览器事件循环里微任务、渲染步骤和 rAF 回调的先后顺序有关。事件循环每轮会先执行一个宏任务(比如 setTimeout、UI 事件),然后清空微任务队列(Promise.then、Mu...

Vue 3 中 watch 和 watchEffect 在异步请求竞态下的正确用法

Vue 3 中 watch 和 watchEffect 在异步请求竞态下的正确用法

在 Vue 3 项目里处理搜索框联想、路由参数变化重新拉取数据这类场景时,很多开发者会直接用 watch 或 watchEffect 发起异步请求,却忽略了请求返回顺序不确定带来的竞态问题。比如用户快速输入“a”、“ab”、“abc”,三个请求几乎同时发出,如果“a”的响应最后到达,界面就会显示错误的结果。这类 bug 在本地开发时很难复现,上线后却频繁出现...

React 18 并发渲染下,为什么 useEffect 会执行两次?

React 18 并发渲染下,为什么 useEffect 会执行两次?

在 React 18 的 StrictMode 下,开发环境里组件挂载时 useEffect 会执行两次。这不是 bug,而是 React 为了帮助开发者提前发现副作用清理问题而刻意为之的行为。很多人在接入 React 18 或者升级现有项目时,会突然看到控制台里接口请求翻倍、定时器被创建两次、WebSocket 连接重复建立,甚至出现数据竞争。这个现象在开...

浏览器为什么会对同一个接口发起两次请求?一次由 CORS 预检引发的排查

浏览器为什么会对同一个接口发起两次请求?一次由 CORS 预检引发的排查

前端本地调试时,经常会在 Network 面板里看到一个接口出现两条记录:一条是 OPTIONS,一条是真正的 GET 或 POST。更奇怪的是,后端日志里 OPTIONS 请求没有被业务代码处理,却仍然返回了 200,而真正请求却报 CORS 错误。这个问题通常不是浏览器 bug,也不是 axios 重复调用,而是触发了 CORS 预检(preflight...

URLSearchParams 的隐藏坑:为什么你的查询参数总是多一个加号?

URLSearchParams 的隐藏坑:为什么你的查询参数总是多一个加号?

处理带查询字符串的 URL 时,很多人习惯用 URLSearchParams 来拼接或解析参数,毕竟它是浏览器原生 API,比手写 encodeURIComponent 省心不少。但实际开发里有个高频翻车场景:后端收到参数值里莫名其妙多出加号,或者前端从 location.search 里解析出的某个字段总是和原始值不一致。常见原因就藏在 URLSearch...

JavaScript 中 requestAnimationFrame 在后台标签页不触发的问题排查与替代方案

JavaScript 中 requestAnimationFrame 在后台标签页不触发的问题排查与替代方案

做数据大屏或者定时轮询渲染的时候,很容易遇到一个现象:页面切到后台再切回来,某些依赖于 requestAnimationFrame 的动画或状态更新会「卡住」几秒,甚至像是什么都没发生。浏览器为了省电和降低 CPU,在标签页不可见时会暂停 requestAnimationFrame 的回调,把它降频甚至完全冻结。但业务里可能用它来驱动非纯视觉任务,比如轮询状...

Vue 3 的 `v-model` 在自定义组件上绑定对象属性时,为什么修改不生效?

Vue 3 的 `v-model` 在自定义组件上绑定对象属性时,为什么修改不生效?

在 Vue 3 里用 v-model 封装表单组件很常见,比如把 el-input、el-select 再包一层,或者自己写一个带校验的输入框。但不少人会遇到这种情况:父组件传一个对象给子组件,子组件里用 v-model="form.name" 绑定,输入时值变了,父组件的对象却没更新,或者更新了但视图没反应。这通常不是 Vue 的 bug,而是 v-mod...

别再手动拼 URL 了:URLSearchParams 在真实项目里的几个坑

别再手动拼 URL 了:URLSearchParams 在真实项目里的几个坑

做前端经常要处理 URL 查询参数:页面跳转时带上筛选条件、调用接口前拼装 query、从地址栏读取分页信息等等。早些年大家习惯手写字符串拼接或者用 qs、query-string 这类库,后来浏览器原生提供了 URLSearchParams,很多场景下已经够用了。但我在维护项目时发现,团队里不少人对它的行为理解得并不完整,比如数组参数怎么传、+ 和空格的关...

你的网站有第二类用户:Cloudflare 扫了 20 万个域名,Agent 可读性平均只有 48 分

你的网站有第二类用户:Cloudflare 扫了 20 万个域名,Agent 可读性平均只有 48 分

过去三十年,Web 开发的核心假设几乎没变过:人类用浏览器打开页面,用眼睛读内容,用手点按钮。SEO 解决的是"让搜索引擎找到你",但抓回去本质上还是"给人类看"。 2026 年,这个假设裂开了一道口子。Chrome 149 把 Gemini 直接集成进浏览器:用户可以对浏览器说"帮我找一家附近的意大利餐厅,看看今晚 7 点有没有空位,有的话帮我订了",浏...

对比Itext、PdfBox:jquick-pdf为什么是后端首选PDF工具?

对比Itext、PdfBox:jquick-pdf为什么是后端首选PDF工具?

对比Itext、PdfBox:jquick-pdf为什么是后端首选PDF工具? 引入 PDF 工具选型经常陷入“哪个库最强”的争论,但后端真正关心的是:业务字段能否稳定生成、模板能否由团队维护、中文和分页是否可控、部署是否简单、许可证是否适合产品。iText 功能成熟,却需要理解较完整的对象和排版体系;PdfBox 接近 PDF 底层,灵活但需要自行处理文字...

资源下载

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

优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

用户登录
用户注册