开发宗

137 阅读1分钟
1、仪表盘页面突然很卡顿?
滥用vue的$forceunpdate() 在outclick 的方法中,导致click的时候触发很多页面更新。
2、老板的mac很卡顿但是别人的没事?
去申请公司同款mac,发现确实卡顿,访问阿里的qucikbi 也是很卡顿,分析:浏览器的版本不对原来是chrome的dev版本不是稳定版本
ps 查阅dev版本是开发版本存在很多bug,浏览器的引擎的垃圾回收有问题,导致内存泄漏。
3、用户不小心操作丢失大量的仪表盘数据?
和后台查阅请求保存的记录,找到最后一次完整的数据的保存记录(保留2个月的请求记录),模拟请求恢复数据。
4、页面内存损失严重。
 vue的项目中有些v-if销毁组件 ,但是子组件缓存的一些dom片段或是数据不会被销毁,那需要手动的去调用destroyed 譬如 this.$refs.selectRef.destroyed()
5、事件优化 减少click绑定在每个DropdownItem上
 <Dropdown
                  transfer
                  @on-click="(name)=>{
                    addHead(name,index,collapseItem)
                  }"
                >
                  <a href="javascript:void(0)">
                    <span class="iconfont iconicons- head-operate noToggle"></span>
                  </a>
                  <DropdownMenu slot="list">
                    <DropdownItem
                      name='addBrother'
                    >添加并行表头</DropdownItem>
                    <DropdownItem
                      name='addSon'
                    >添加子表头</DropdownItem>
                  </DropdownMenu>
    </Dropdown>

addHead(type, index,collapseItem) {
      this[type](index,collapseItem);
    },
6、@scroll.passive=""  监听器能保证的只有一点,那就是调用 preventDefault() 无效


【浏览器只有等内核线程执行到事件监听器对应的JavaScript代码时,才能知道内部是否会调用preventDefault函数来阻止事件的默认行为,所以浏览器本身是没有办法对这种场景进行优化的。这种场景下,用户的手势事件无法快速产生,会导致页面无法快速执行滑动逻辑,从而让用户感觉到页面卡顿。】
通俗点说就是每次事件产生,浏览器都会去查询一下是否有preventDefault阻止该次事件的默认动作。我们加上passive就是为了告诉浏览器,不用查询了,我们没用preventDefault阻止默认动作。
待续。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。