我的网站开发技术经验总结 我的网站开发技术经验总结
首页

fangdown

我的网站开发技术经验总结
首页
  • 认识ESM
  • chrome-talend插件,类似postman
  • sequelize 使用及技巧
  • UML工具Power Designer建表
  • sequelize相关操作文档
  • 解决抖音获取签名及并发的问题
  • 记一次解决抖音分享页混淆字体,字体图标转UID解决方案
  • 获取抖音用户作品列表信息
  • 获取抖音用户作品列表信息-进阶
  • 获取抖音用户作品列表信息-进阶3
  • 如何根据抖音号获取用户信息
  • 获取用户最新视频
  • 模块化-import和require的区别
  • eslint规范
  • js容错处理
  • js-数组分组,执行promise
  • reduce使用遇到的问题
  • 正则匹配html的元素内容
  • taro 小程序 弹窗层禁止底部滚动
  • 公众号签名问题
  • CentOS7中MariaDB重置密码
  • nginx多域名配置
  • node访问接口,得到乱码的结果,原因-Accept-Encoding
  • node写文件到json中
  • node抓取html内容
  • Node.js使用ES6语法
  • express 使用cors中间件解决跨域
  • node + express + session + redis 进行持久化缓存
  • node中读取文件夹,获取文件名称
  • pm2常用命令
  • 使用pm2管理后台node服务
  • typescript puppeteer支持window及document属性
  • node读取json文件
  • node中使用redis缓存
  • node + github的webhook完成自动部署
  • vuepress-blog的性能优化-CDN
  • CENTOS7下安装REDIS
  • promise then和catch的学习和使用
  • promise在循环中的串行并行用法
  • puppeteer常用知识
  • centos部署安装puppeteer
  • python的学习和使用
  • Taro+TypeScript - Mobx实践
  • 爬虫系列 --- 反爬机制和破解方法汇总
  • 安全-html转码
  • taro中使用animation动画
  • charles 使用
  • Mac下VSCode设置iTerm2终端样式
  • centos一步步完成站点部署
  • 云闪付做地铁的思路
  • 准备技能
  • 备案pc项目介绍
  • 备案小程序项目介绍
  • 小程序二维码扫码功能
  • 小程序域名组件开发
  • 小程序添加水印
  • 规则引擎优化
  • 记一次hooks代替redux的经历
  • 通过nodejs+koa+stream进行服务端图片代理
  • nodeJs接入log4j日志
  • nodejs+typescript项目中添加全局global属性
  • create-react-app 安装 bizcharts 项目崩溃
  • 使用MutationObserver监控dom的变化
  • 服务器重启后启动相关服务
  • moment国际化的问题
  • 项目经验
fangdown
2026-05-01

多分支修复撞车的问题

# 多分支撞车问题:

同时修复问题 1 2 3 ,并新建分支 1 2 3, 各自测试没有问题,于是发到预发布环境上验证,

问题1 2 都验证ok,问题3 验证的时候 不太正常,

具体表现为: 有个tab标签组,可关闭某个标签, 关闭标签需和嵌套的iframe进行通信,通信的一个作用是关闭一个轮询定时器

问题:当关闭标签时, iframe应有的事件没有发生, 造成了交互异常,到底是因为什么原因呢

# 分析

尝试方案:打日志, 在标签层和iframe层都埋了日志代码, 查看日志输出, 在本地进行调试的时候,日志及业务流程正常,但是部署到koa上的时候又不正常, 感觉上是部署不生效, 于是对比输出文件hash,发现又是正常的,那是因为什么原因呢? 只好追加更多更详细的日志, 查看到底是在哪一步出现了问题, 有一个很明显的地方是,tab标签点击事件触发了, 但是iframe表单没有正常响应, iframe为什么没有收到postMessage消息呢

于是查看iframe结构, 观察它的表现, 当我关闭标签的时候,会把iframe给删除了, 我好像发现了原因, 对了iframe都删除了, 不在dom结构中了, 它的一切行为就得不到执行了

那为什么我本地又是正常的呢, 于是查看本地iframe的表现, 调试发现本地的iframe又妥妥的在dom结构中, 并没有删除, 这是为什么呢? 突然之间想起来了, 在修复问题2的时候,我做了一个优化,当关闭标签的时候,会更新lru,把不存在标签对应的iframe给删除, 两个分支都基于同一个base, 分支2已经优化了lru并更新到预发布环境, 分支3 仍然保留了lru的问题, 那么本地正常就能理解了, 它对应的仍然是老代码

找到了问题原因, 解决起来就比较简单了

# 解决

在标签点击事件中, 先向iframe进行postMessage, 再延时执行删除标签 setTimeout , 让他们不在同一个任务队列里执行, 优先postMessage, 再延时删除标签,经过验证, 问题解决了

# 总结

同项目多分支开发,需要考虑到代码的相互干扰性, 都是自己开发的时候还容易发现点,别人写的就更难发现了,

上次更新: 2026/05/01, 18:45:02
最近更新
01
如何成为架构师
01-23
02
服务器部署全过程
11-23
03
webpack4打包优化
07-09
更多文章>
Theme by Vdoing | Copyright © 2019-2026 fangdown | 粤ICP备19079809号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式