其实毫秒级的setData在某些情况下是不可避免的(尤其是采用了框架的情况)。
所以如果官方能够将setData的执行延迟16ms。比如如下代码:
let timer=null;
if(!!timer) clearTimeout(timer);
timer=setTimeout(function(){
setData();
},16);
那么就好多了。
嗯,写到这里我突然想改一下自己的框架……
不过如果官方能考虑一下的话,那就再好不过了。
感谢反馈。如果仅仅是延迟16ms执行,这是没什么意义的。你的意思是将16ms内的setData调用合并吗?这样的话会和现在的setData执行效果有些许差异,所以不太可能这样变更setData的实现。建议你改一下自己的编码框架来实现。
-----------wxml-----------
<!–蓝牙未开启–>
<view class=“measure” style=“width:750rpx;height:{{systemInfo.windowHeight}}px;background-color:{{bgColor}}” hidden="{{!(pageNumber==1)}}">
<image class=“measureImage” src="…/…/img/bluetooth_ball{{imageSuffix}}"></image>
<text class=“measureText”>先打开"手机设置",开启"蓝牙"后即可一键测量</text>
</view>
<!–设备扫描中–>
<view class=“measure” style=“width:750rpx;height:{{systemInfo.windowHeight}}px;” hidden="{{!(pageNumber==2 || pageNumber==3)}}">
<view animation="{{animationData}}" class=“measureImage1”>
<!-- 扫描 -->
<view class=“scan” hidden="{{(pageNumber==3)}}">
<image src="{{scanImageName+imageSuffix}}"></image>
</view>
<!-- 连接 -->
<view class=“connnect” hidden="{{(pageNumber==2)}}">
<image src="{{connectImageName+imageSuffix}}"></image>
</view>
<view class=“circle1” style=“visibility: {{circle1}};”></view>
</view>
<!–{{bpTitleH+bpTitleH}}–>
<view class=“bpDevice” animation="{{animationData1}}" style=“height:{{bpTitleH+bpDeviceViewH}}px;top: {{bpDeviceTop}}px;” hidden="{{discoveryArray.length==0}}">
<view class=“bpTitle” style=" height: {{bpTitleH}}px;line-height: {{bpTitleH}}px;">选择你要连接的血压计
<view hover-class=“hover” class=“refresh” bindtap=“refresh”>刷新</view>
</view>
<scroll-view class=“device” scroll-y style=“height:{{scrollH}}px;”>
<block wx:for="{{discoveryArray}}">
<view class=“bp” id="{{index}}" data-deviceinfo="{{item}}" bindtap=“handDeviceTap” style=“height:{{bpDeviceViewH}}px;”>
<image class=“bpImage” src="…/…/img/bp3l{{imageSuffix}}"></image>
<view class=“deviceId” style=“height: {{bpDeviceViewH}}px;line-height: {{bpDeviceViewH}}px;”>{{“底部编码” + item.mac}}</view>
</view>
</block>
</scroll-view>
</view>
</view>
<!–点击测量–>
<view class=“measure” style=“width:750rpx;height:{{systemInfo.windowHeight}}px;” hidden="{{!(pageNumber==4)}}">
<image class=“measureImage” bindtap=“handMeasureTap” src="…/…/img/start_ball{{imageSuffix}}"></image>
</view>
js:
that.setData({
pageNumber:2
})
or
that.setData({
pageNumber:3
})
我这样控制的有时候会发生 状态不切换,你有好的意见么?