ibuick
26-07-07 14:03 微博认证:《OS X Mountain Lion高手进阶》《苹果达人MacOSX玩家秘技》作者 汽车博主

有关华为这个乾坤智驾断网后还在滚动的问题,

我看了眼代码。

它的逻辑是这样:为了让页面好看不生硬,它使用了一个叫 runNum.worker.js JS 脚本控制页面上的数字滚动效果。为了好看,在一个固定的时间间隔内,当前数字(页面上显示的公里数),和目标数字(服务器上最新的公里数) 是通过动画滚动生成的。这样不会让数字像离散的状态一样从某个数直接跳到某个数,而是产生一个自然增长过去的结果。看起来好看。

const stepFactor = Math.log10(absDiff + 1) * 30

中间有这么个代码,它限制了数字滚动的步数,最小 50 步,最大 350 步,具体滚动数量,由 absDiff 差值决定。也就是差值越大,滚动步数越多。

而且这个滚动非线性滚动,而是变速滚动

if (progress <= 0.3) {
easedProgress = progress * 1.5
} else if (progress <= 0.6) {
easedProgress = 0.45 + (progress - 0.3) * 0.8
} else {
easedProgress = 0.69 + (progress - 0.6) * 0.775
}

这里说明了,30% 快一点,中间 30% 慢一点,最后 30% 再慢一点停止。

所以,即便断网了,他还滚动,是因为 absDiff 数值很大,JS 选择了一个比较多的滚动步数而已。只要步数消耗完毕,页面显示了最后一次获得的目标值,就会停止。

而,http://t.cn/AXo8uQRO 这个是真正去后端拿数据的链接,它的返回结果如下:

{
"invalidCode": null,
"code": "200",
"message": "success",
"data": {
"mileage": {
"value": "36717522103",
"lastUpdateDate": "2026-07-07 13:22:47.000000"
},
"pilot": {
"value": "12569366628",
"lastUpdateDate": "2026-07-07 13:22:47.000000"
},
"avoid": {
"value": "5866272",
"lastUpdateDate": "2026-07-07 13:22:47.000000"
}
}
}

如果断网,这个链接是拿不回任何数据的。当然了这个数据的可信程度我就不知道了,就看企业自己了。从技术上来说,华为这个页面没有问题,不存在断网后硬写的情况。

当然它有一段代码是可以干这个事情的,但是不好意思,这段代码没用。在 safety_kilomter.js ,可以看到硬写的逻辑,但是没有使用。

这么简单的看看代码的问题,不看就非要硬黑,

#别不正经说车##乾崑智驾#

发布于 北京