惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hacker News: Ask HN
Hacker News: Ask HN
D
DataBreaches.Net
Microsoft Security Blog
Microsoft Security Blog
U
Unit 42
V
Visual Studio Blog
GbyAI
GbyAI
云风的 BLOG
云风的 BLOG
博客园 - Franky
C
CXSECURITY Database RSS Feed - CXSecurity.com
大猫的无限游戏
大猫的无限游戏
P
Privacy & Cybersecurity Law Blog
T
The Exploit Database - CXSecurity.com
Simon Willison's Weblog
Simon Willison's Weblog
L
LangChain Blog
I
Intezer
V2EX - 技术
V2EX - 技术
Google DeepMind News
Google DeepMind News
T
Threat Research - Cisco Blogs
Apple Machine Learning Research
Apple Machine Learning Research
V
V2EX
腾讯CDC
博客园 - 【当耐特】
Know Your Adversary
Know Your Adversary
TaoSecurity Blog
TaoSecurity Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
F
Fortinet All Blogs
Project Zero
Project Zero
Blog — PlanetScale
Blog — PlanetScale
S
Security @ Cisco Blogs
量子位
M
MIT News - Artificial intelligence
美团技术团队
C
Cisco Blogs
S
Schneier on Security
Recent Commits to openclaw:main
Recent Commits to openclaw:main
G
Google Developers Blog
N
News and Events Feed by Topic
MongoDB | Blog
MongoDB | Blog
The Hacker News
The Hacker News
H
Help Net Security
S
Secure Thoughts
Scott Helme
Scott Helme
SecWiki News
SecWiki News
T
Troy Hunt's Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
博客园 - 叶小钗
O
OpenAI News
Application and Cybersecurity Blog
Application and Cybersecurity Blog
博客园 - 司徒正美
T
Tenable Blog

WSH

凑数日子 2026年,大概将会是最后一个人口保持在14亿以上的年份 感谢之人 数字经济中的注意力交易 突然的噩耗 一株洋瓜藤 再见到姑妈 港澳掠影 Miniflux 中文搜索能力增强 慢慢吹~~~轻轻送~~~ 房子梦 探索云南-大理 证书过期导致的错误 过年被追问工资 在秋天开始 水里的鱼 斩断联系1 云南壮族婚恋 我有一颗乳牙 世界的底色是争,抢,偷 无题4 无题3 人来人往 AI见闻 无题2 滇池掠影 WebGIS 三维空间分析之参考超图实现的天际线分析 我原来是个同步单线程 往事如烟1 净月潭之行 一万次悲伤 开源丑闻的碎碎念 提高开发幸福感所做的举措之构建前端基础设施 山的那边 想回到过去去去去去去去去去去去去~ WebGIS开发之glsl支持 WebGIS三维空间分析之坡度计算 WebGIS 三维分析之阴影率分析 幸福(或我的女儿叫波兰) 最后一课 Markdown解析高亮及Mermaid 上海掠影 Cesium/QGIS加载图新地球LRC自定义图层 端午粽子 如何清晰地写作 清明扫墓 自编写,自用的开源工具 饮食 AI在GIS领域的实践之QGIS-MCP 燕南飞 WebGIS 三维空间分析之剖面线分析 WebGIS三维开发中的面积量测 WebGIS空间分析之坡向分析的实现 收藏自由-新的书签工具 月夜杂谈 花海,指弹版 三维之Cesium分屏显示 请验证您是真人 GIS数据转换——从点到栅格 自定义「ONE · 一个」订阅源 西湖美人峰徒步 给开源RSS服务应用Miniflux添加「标题翻译」 五一青山湖骑行 将chatGPT集成到微信机器人 动手更换旧手机——google pixel3的电池 Vue组件检测无效属性 ArcGIS复杂插件处理 两件关于博客网站变更的事情 Vue开发个人守则 账户注销后遗症 《纳瓦尔宝典 财富与幸福》前两章的一些摘录 听一首黄歌—Yellow 坏事总是成双 出差消小记 cesium-控高分析 当你孤单你会想起谁 穿越城市-青山湖 Harry Browne关于个人金融安全17条黄金守则—财富之道 批量裁剪矢量数据的几种途径 小而美的软件 想回到过去 热!热!热! 那么近,又那么远——遥望 为什么win笔记本触摸板没有mac好用呢 一只猫 二月份的检讨 自定义Cesium缩放控件 线段简化的几种算法 今天看球了吗? HDF转为GeoTIFF QGIS插件编写 乐高风格地图 基于Python的遥感可视化记录 使用Python提取遥感影像中的土壤线 接触pandas QQ音乐评论可视化 拆分-应用-联合 阳光打在我身上 淘宝商品信息可视化
浏览器标签页进程引发的性能问题
WSH · 2025-09-03 · via WSH

目录

    • 问题
    • 原因
    • 解决方案

问题

最近交付的信息系统中的一个功能,上线后用户一直反馈说卡顿,明明我已经优化了好几轮,在本地速度快的飞起,怎么线上就不行,负责集成测试的同事没有定位到问题的缘由。

我到现场看,发现这个信息系统(这里称B),是挂接在另一个系统(这里称A)里作为子系统,通过链接跳转,它们共享相同的域名,协议,端口。用户在A系统点击链接跳转B系统时,浏览器基于站点策略会将新打开的B系统的标签页与原A系统标签页共用一个进程。我是怎么确定的呢,因为当B系统运行计算密集型功能出现异常时,A和B对应的标签页都崩溃了,若是手动打开标签页输入网址后运行则不会出现上述问题。我打开浏览器任务管理器一看,果真如此,就是共享进程。

原因

A系统本身是一个胖应用,进程内占用了大量资源,如内存,CPU等,而B系统作为一个三维信息系统,同样也是胖应用,也需要很多资源,在与A系统的资源竞争中阻塞了运行。

一般如chrome等浏览器,手动开启一个标签页会启动一个新进程,而针对链接跳转打开标签页时,浏览器在分配进程会遵循如下规则:

相同域名的标签页

  • 默认共享进程:

    若两个标签页属于同一站点(协议+域名+端口相同),且通过常规方式打开(如 <a href="..." target="_blank">未设置 rel="noopener"),可能会共享同一渲染进程。

  • 例外:

    • 若通过 rel="noopener noreferrer"打开新标签页,浏览器会强制分配独立进程。
    • 使用 window.open()时,若未设置 noopener,某些浏览器仍可能共享进程。

不同域名的标签页

  • 独立进程:

    不同域名(或不同协议/端口)的标签页默认分配独立渲染进程,以防止跨站脚本攻击(XSS)和数据泄露。

  • 站点隔离:

    现代浏览器(如 Chrome)默认启用该功能,强制不同域名的页面隔离进程,即使它们属于同一主域名下的子域名。

解决方案

至于问题处理的方式很简单粗暴,在A系统上跳转时,强制将新开启的标签页置于独立进程内而不是共享A系统页面进程。理想很丰满,现实很骨感,因为A是上级开发的系统,我们没有权限修改,想改就得向上申请,所以最后做了一个妥协的方案,在进入B系统前,先判断该标签页是属于共享进程还是独立进程,若前者的话则弹出一个窗口(弹窗),引导用户点击按钮开启独立标签页,然后系统自动把原标签页关闭。

至于为什么选择弹窗引导的方式,因为浏览器不允许使用JS触发新的标签页(这种方式触发称之为弹出式窗口),该权限默认关闭,当强行用JS触发新标签页时,浏览器的搜索栏会出现一个很小的权限请求窗口,很隐蔽导致用户可能根本没注意到,所以干脆做一个显性的引导。