JS大量计算导致浏览器卡死

在JS中,如果某个方法中有大量的计算,当执行到这个方法时,会出现浏览器UI长时间卡死的情况,很影响用户体验。这个时候使用requestIdleCallback 降低该段代码的优先级。

requestIdleCallback 允许你在浏览器空闲时执行回调,不会影响性能:

    calcVolume() {
        let _this = this
        this.viewer.loadingMask.enable = true
        const positions = this._drawHandler.positions
        this._positions = positions

        function calc() {
        	//大量计算
            const volume = _this.getVolume()
            _this.volume = volume //立方米
            _this.viewer.loadingMask.enable = false
            _this._showLabel && _this.drawLabel(volume)
            _this._callback && _this._callback(volume)
        }

        requestIdleCallback(calc);
    }

但是存在浏览器兼容问题
17267972813141726797280496.png

具体requestIdleCallback 使用方法,详见https://developer.mozilla.org/zh-CN/docs/Web/API/Window/requestIdleCallback

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值