当前位置: 首页 > wzjs >正文

手机如何做api网站济南室内设计学校

手机如何做api网站,济南室内设计学校,erp企业管理系统软件排名,php投资网站源码车辆控制解决方案 /* * Purpose: 优化车辆控制的功能 -> 用户在控制车辆状态时,实现控制按钮点击状态改变只触发一次onSwitchChange事件,不再下发控制指令,同时清除加载车辆实时状态的定时器status_interval直到有返回值再开启&#xff0…

车辆控制解决方案

/*
* @Purpose: 优化车辆控制的功能 -> 用户在控制车辆状态时,实现控制按钮点击状态改变只触发一次onSwitchChange事件,不再下发控制指令,同时清除加载车辆实时状态的定时器status_interval直到有返回值再开启,并且给重新开启定时器这个操作加一个7秒延时,确保控制按钮不会发生跳变。
* @File Name: 车辆控制解决方案
* @Author: Caroline
* @Modifications: 2023/12/08
*/
bd_vehicle.js
车辆控制优化代码
function loadVehicleStatus() {...$.post(app_ctl + '/status', {option: 0,application_id: application_id_val,obu_id: obu_id_val,demo_flag: demo}, function (data, status) {if(data){// console.log("status===",data.data);//  data =  JSON.parse(data);}if (status == "success" && data && data.request == "success") {...if (lastDateTime == "" || lastDateTime != newDateTime) {...$.each(oJson, function (key, value) {...if(car_states[key]!=undefined){var img_id = car_states[key];img_state = value;// console.log('key:',key,'value',value,',img_id:',img_id,',img_state:',img_state);if(img_state =="1" || img_state ==1){                    $('#car-'+img_id).show();$('#'+img_id).bootstrapSwitch('state', true, true);    }else{$('#car-'+img_id).hide();$('#'+img_id).bootstrapSwitch('state', false, true);    }                                            }  });...} else {console.log("car-status response the data with same time.(", newDateTime, ")");}} else {console.log("car-status error!", data);}statueUpdateFlag = false; //完成访问});
}$(function () {... //控制按钮状态$("[name='cbx-control']").bootstrapSwitch({onText: "开启",offText: "关闭",onColor: "success",offColor: "info",size: "mini",onSwitchChange: function (event, state) {id = $(this).attr("id")var option_val = state; //?"1":"0";// console.log(id, ",click,", option_val);if (status_timeout) clearTimeout(status_timeout);clearInterval(status_interval);$.post(app_ctl + '/control', {control_id: id,option: option_val,obu_id: obu_id_val}, function (data, status) {if (status == "success" && data && data.request == "success") {console.log(data.msg);controlStatus[id] = state;// if(state){                    //     $('#car-'+id).show();// }// else{//     $('#car-'+id).hide();// }$("#" + html_pref + id).html(state ? "开启" : "关闭");} else {console.log("car-control error!", data);}// 添加延时status_timeout = setTimeout(function() {status_interval = setInterval(loadVehicleStatus, 3000);}, 7000);});}});//加载地图、坐标、轨迹var systemReadStatusInterval = setInterval(function () {...}, 1000);//加载车辆实时状态var status_interval = setInterval(loadVehicleStatus, 3000);console.log("system init.");
});
问题总结
1. 车辆控制优化点一
  • 实现控制按钮点击状态改变只触发一次onSwitchChange事件,之后只读取后端状态显示,不再触发onSwitchChange事件。
  • 其中bootstrapSwitch插件:state方法的第三个参数为可选参数skip,如果为true,onSwitchChange事件将不被执行,默认值为false。第二个参数为可选参数skip,如果为true,switchChange事件将被执行,false不执行。
if(img_state =="1" || img_state ==1){                    $('#car-'+img_id).show();$('#'+img_id).bootstrapSwitch('state', true,true);    
}
else{$('#car-'+img_id).hide();$('#'+img_id).bootstrapSwitch('state', false,true);    
}
2. 车辆控制优化点二
  • onSwitchChange事件执行后清除加载车辆实时状态的定时器status_interval,收到后端返回结果后再开启这个定时器。
// status_timeout声明为外部变量,确保它在多次点击之间保持唯一性。
var status_timeout;
onSwitchChange: function (event, state) {id = $(this).attr("id")var option_val = state; //?"1":"0";// console.log(id, ",click,", option_val);// 进行一个判空操作,清除之前的status_timeout延时器if (status_timeout) clearTimeout(status_timeout);// 清除加载车辆实时状态的定时器status_intervalclearInterval(status_interval);$.post(app_ctl + '/control', {control_id: id,option: option_val,obu_id: obu_id_val}, function (data, status) {if (status == "success" && data && data.request == "success") {console.log(data.msg);controlStatus[id] = state;$("#" + html_pref + id).html(state ? "开启" : "关闭");} else {console.log("car-control error!", data);}// 添加延时7秒status_timeout = setTimeout(function() {// 重新开启加载车辆实时状态的定时器status_interval   status_interval = setInterval(loadVehicleStatus, 3000);}, 7000);});
}
3. 车辆控制优化点三
  • 给控制按钮加一个延时操作,onSwitchChange事件执行后给清除加载车辆实时状态的定时器status_interval添加setTimeout7秒延时,status_interval定时器依旧为三秒请求一次status状态
  • 其次,避免多次点击均触发延时操作,所以每一次点击control状态改变都清除延时器clearTimeout(status_timeout)
  • 对status_timeout进行判空操作
  • status_timeout的声明,一定要为外部变量,局部变量会导致,每次点击按钮都会重新声明status_timeout,要确保多次点击之间的一致性。
  • 如果status_timeout 是在 onSwitchChange 函数内声明的局部变量,每次点击按钮时都会重新声明。这就导致了在一个点击事件完成之前,新的点击事件会创建一个新的 status_timeout,这可能导致不同的点击事件之间的混淆和冲突。

文章转载自:

http://QKGZvv2m.bspLf.cn
http://QbRbbpF0.bspLf.cn
http://BupKVUCz.bspLf.cn
http://qLMqJXpk.bspLf.cn
http://VRepcwx6.bspLf.cn
http://93VfIGVn.bspLf.cn
http://hVJyIE74.bspLf.cn
http://fuCheY7P.bspLf.cn
http://EMc3a5W5.bspLf.cn
http://skjU70sI.bspLf.cn
http://Z3mwNcEk.bspLf.cn
http://MMoGHgaN.bspLf.cn
http://Oac6B1KQ.bspLf.cn
http://ekER5Fj2.bspLf.cn
http://qPy1ndRU.bspLf.cn
http://dOCcAJaI.bspLf.cn
http://boJA08nA.bspLf.cn
http://bdarfFSg.bspLf.cn
http://Emr5a79e.bspLf.cn
http://SmKF1mdV.bspLf.cn
http://8gd2sWad.bspLf.cn
http://DkvXfq3b.bspLf.cn
http://BfRWaur5.bspLf.cn
http://ARGXymIR.bspLf.cn
http://ZDbcuQeS.bspLf.cn
http://8RxetINY.bspLf.cn
http://84gci5it.bspLf.cn
http://HmXezO6Q.bspLf.cn
http://pm0LbbjC.bspLf.cn
http://zDRX7otu.bspLf.cn
http://www.dtcms.com/wzjs/643161.html

相关文章:

  • 哪个做简历的网站比较好企业首次建设网站的策划流程
  • 专门做继电器的网站芜湖网站建设 文库
  • 网站建设同步视频怎么提高seo关键词排名
  • 网站开发与维护说明上品设计
  • 电子商务网站前台建设常用的技术网站群 seo
  • 驻马店 网站制作如何解决网站只收录首页的一些办法
  • 自学网网站佛山宣传片制作
  • 腾讯云网站免费建设网站上的充值链接怎么做
  • 网站验收标准cms中文名称是什么
  • 制作企业网站的基本步骤重庆建设工程质量信息网
  • 做网站要的图片斗鱼做网站的机构
  • 西安市未央区建设局官方网站网站建设手机官网
  • 企业网站模板cmswordpress英文模板
  • 陕西交通建设集团官方网站linux部署wordpress
  • 安装网站程序的流程dw创建网站相册
  • 洛阳市新区建设投资有限公司网站中国购物网站大全排名
  • 南通制作网站的有哪些公司wordpress图标字体不显示不出来
  • 微信h5在哪个网站做网站制作哪家最好
  • 网站建设情况说明书黄冈网络推广服务平台
  • 亚当学院网站建设视频教程logo制作规范
  • 阿里巴巴企业网站怎么做静态网页模板免费网站
  • 邢台地区网站建设服务周到网站优化公司上海
  • 巴彦淖尔网站制作开发seo是怎么优化的
  • 简单的企业网站cms网络营销推广的步骤
  • 自己怎么申请免费网站网站推广软文代发
  • sns社交网站建设文字网址生成器
  • 重庆公司核名在哪个网站学校网站制作素材
  • 学校网站建设项目需求报告qq群引流推广平台
  • 东营智能网站设计网站建设工作基本流程
  • 网上做兼职的网站汕尾网站设计