今天处理了一个奇葩的 IE 性能问题,可能我以前低估了 IE 的性能多差

2020-11-23 22:11:04 +08:00
 murmur

需求很简单,一个 50 行左右的简单表格,每行有三四个文本框可以编辑,做了表列锁定,用的饿了么 UI,用户说 IE11 卡,按理说都是这几年买的电脑,win10 也装了,IE11 性能怎么也不可能这么差

分析过程略,直接给结果,我们来做题

每行 4 个文本框,50 行,那么一页就有 200 个文本框

因为饿了么的列锁定是 2 个重叠表格实现的,也就是同样的文本框渲染了 2 次,所以一页现在就有 400 个文本框

关键来了,IE11 下,饿了么的 input 会计算自己的高度(我们知道,老一点的浏览器在获取计算长宽这样的属性时会把所有缓存的东西算一下得到正确值),这样一次 patch 需要 20-30ms

所以这 400 个文本框的总耗时会超过 10 秒,虽然性能分析模式慢一些,但是实际上也要 6 秒以上了

7017 次点击
所在节点    程序员
50 条回复
wdhwg001
2020-11-24 10:17:06 +08:00
@ruanimal 它们关系早就远到够不着了,不要血统论了。
sandman511
2020-11-24 10:17:27 +08:00
不懂就问,表列锁定是什么意思
murmur
2020-11-24 10:20:42 +08:00
@sandman511 就是固定几列,后面的列可以随便拖动,比如你看人员信息表,我就把姓名这列固定
Lemeng
2020-11-24 10:21:11 +08:00
ie 主要比较轻便,实用性确实差
BarZu
2020-11-24 12:15:59 +08:00
惊讶,现在做的系统竟然还要支持 IE 。。。我都是指定用户用哪个浏览器的[手动狗头]
Torpedo
2020-11-24 12:20:22 +08:00
IE 的问题是就是持续维护迭代的太少了
IE6 的问题就是从业界领先,到业界毒瘤
IE11 后面就是 edge 、chrome edge 了。
本身代码还是可以,关键看投了多少人持续迭代维护
royzxq
2020-11-24 12:36:46 +08:00
都是指定用户使用 chrome 70+的
royzxq
2020-11-24 12:38:33 +08:00
另外为什么会有 200 个文本框呢... 每一个表格节点都渲染了一个文本框?
redtea
2020-11-24 12:40:41 +08:00
IE 已死
murmur
2020-11-24 12:42:53 +08:00
@royzxq 因为是编辑模式,每一行都有几个单元格可以改,所以行少架不住可以编辑的框框多
JJstyle
2020-11-24 13:03:38 +08:00
做过类似的需求,但是我们的项目要求用 chrome 才能打开,进首页就已经拦截了,哈哈哈
Dogergo
2020-11-24 13:59:27 +08:00
Element Ui 数据表格,尤其是列固定的情况下性能贼差,曾经在一个项目中用过,layui 会好上很多,虽然不知道 layui 的具体实现是什么样的,没有具体研究。
darknoll
2020-11-24 14:20:53 +08:00
IE 的问题有啥可分析的,强制用户使用 chrome 呗
jmyz0455
2020-11-24 14:29:10 +08:00
五年前吧好像,兼容 IE 的一个工单系统,那时候欧朋火狐还是自研引擎的时代,包括微软自家的 Edge 。做出来之后,其他浏览器都是非常完美的。IE11 就是无法正常使用树控件,要求不高数据也不多,就是异步加载然后展示更多,老是在加载的时候卡,要么是展开的时候卡,换了好多插件都不行,晕。
eitomomobaohua
2020-11-24 14:41:17 +08:00
@no1xsyzy 不好意思,我给忘了 233
eitomomobaohua
2020-11-24 14:43:20 +08:00
@xiyuesaves 我错了,你不说我都忘了...
murmur
2020-11-24 14:45:12 +08:00
@darknoll 用户出钱做 IE 兼容当然是要做的
reus
2020-11-24 14:47:19 +08:00
@ragnaroks 你什么游戏一秒过万帧?
darknoll
2020-11-24 15:05:26 +08:00
@murmur 那就没办法了,你自己接的活,含着泪也要干完。如果换做我,我肯定是不会接这个兼容 IE 的活
ragnaroks
2020-11-24 18:46:30 +08:00
@reus 正在玩的过万的没有,csgo 5800x-smt,rtx3080,fpsbenchmark 工坊图 1047fps

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/728516

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX