有关华为这个乾坤智驾断网后还在滚动的问题,
我看了眼代码。
它的逻辑是这样:为了让页面好看不生硬,它使用了一个叫 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 ,可以看到硬写的逻辑,但是没有使用。
这么简单的看看代码的问题,不看就非要硬黑,
#别不正经说车##乾崑智驾#
