CNode

吐个槽,为什么我们公司的前端会认为JS计算效率差??

问答
Sscheshan发布于10 年前最后回复10 年前13 回复6891 浏览0 收藏
[
	"user":{
		"id": xx,
		"provinceList": [
			{
				"id": "1",
				"resource": xx
			}
		]
	}
]

有一个汇总界面,后台API输出如上的JSON结构,需要遍历user/provinceList下的resource按省份进行汇总,前端已经有了计算逻辑了。 现在需要把这个界面的功能搬到子系统首页,前端不干了,说是计算会阻塞主线程,导致首页加载慢。 按照我的理解,会阻塞主线程的操作只会出现在超大规模的运算和频繁的DOM操作上。大家随便开个控制台试一下,10000000次的循环加法只需要10ms左右,而这次循环数据量不超过1000次,这样就影响宝贵的前端加载时间了? 争论了很久,到最后谁也没说服谁,最后前端还是妥协了,说是放到异步计算。我对前端不精通,着实没搞懂,这样的计算还需要异步进行?而且这样的计算还能异步进行? 简直大开眼界!!

查看回复

回复 (13)

Y
yjhjstz#1·10 年前

以 cpu-profiler 数据说话最好了。

C
captainblue2013#2·10 年前

不是很明白,前端已经有了计算逻辑了,就是原本就在前端做的, 现在搬到子系统首页,还是在前端做的, 都在前端,争什么?

S
scheshan#3·10 年前
引用 captainblue2013不是很明白,前端已经有了计算逻辑了,就是原本就在前端做的, 现在搬到子系统首页,还是在前端做的, 都在前端,争什么?

@captainblue2013 因为“首页要加载得足够快”!!!我简直要疯了,差一点我就被逼着把前端的计算代码全部copy到后台了

A
alsotang#4·10 年前

跑 profile 啊 还有,不要在控制台跑,控制台没有开 jit,相当于 eval 的效率

D
DevinXian#5·10 年前

拿数据说话,否则两个人都得被气死0 0

T
tomoya92#6·10 年前

@scheshan “首页要加载得足够快” 每次听到这句话,我都不想跟产品,技术讨论下去了,莫名的想发火。。

V
viko16#7·10 年前

是前端觉得 groupBy 的算法写得不够好么?

N
nullsir#8·10 年前

可能有强迫症。

N
nullsir#9·10 年前

就是那种前端只负责展示,只要现成的数据。

Y
yuu2lee4#10·10 年前

应该没那么费时吧 费时可以后端做 也可以开webworker做 具体看一下 cpu-profiler

C
chita#11·10 年前

计算效率是差 ,不过就一般前端的计算量,差也没什么明显感觉

C
CYCOK#12·10 年前

本质上两个人都想偷懒,我会让服务端的写。职责分清。一个人写了一个内部系统在用。有点感悟。 数据逻辑后端做,交互逻辑前端做 这是最好的。 前端可以做但是不做 , 把一些逻辑放后端复用性更好。

F
flamingtop#13·10 年前

JS是单线程的,栈被计算填满就没有时间执行其他东西,但这点计算真的算不了什么 ,不要把DOM操作放进遍历循环就行了。

参与回复
登录后即可参与回复。登录