• Vue/JS中定时器模拟随机指定范围、位数的小数并更新innerHTML以及页面被销毁时监听事件中销毁定时器


    场景

    若依前后端分离版手把手教你本地搭建环境并运行项目:

    若依前后端分离版手把手教你本地搭建环境并运行项目_霸道流氓气质的博客-CSDN博客_前后端分离项目本地运行

    Vue页面上某个弹窗内容是innerHTML动态拼接。

    系统演示时需构造模拟数据,模拟出数据随机改变的效果。

     

    注:

    博客:
    霸道流氓气质的博客_CSDN博客-C#,架构之路,SpringBoot领域博主
    关注公众号
    霸道的程序猿
    获取编程相关电子书、教程推送与免费下载。

    实现

    1、给需要变化的元素添加span标签以及id属性

    1.                                     self.content.innerHTML = `
    2.                                             <div class="car_detail">
    3.                                                 <div class="car_content">
    4.                                                     <div id="car_content_main">
    5.                                                         <ul>
    6.                                                             <li>
    7.                                                                 <p id="car_speed">车速:<span id="carSpeedSpan">${content.carSpeed ? content.carSpeed : ""}</span>km/h</p>
    8.                                                                 <p id="car_temp">水温:<span id="wtSpan">${content.wt ? content.wt : ""}</span></p>
    9.                                                             </li>
    10.                                                             <li>
    11.                                                                 <p id="car_rotation_rate">转速:<span id="rotationRateSpan">${content.rotationRate ? content.rotationRate : ""}</span>/</p>
    12.                                                                 <p id="car_et">排温:<span id="etSpan">${content.et ? content.et : ""}</span></p>
    13.                                                             </li>
    14.                                                             <li id="car_mileage">里程:<span id="mileageSpan">${content.mileage ? content.mileage : ""}</span>km</li>
    15.                                                             <li id="car_fc">甲烷浓度:<span id="fcSpan">${content.fc ? content.fc : ""}</span>%</li>
    16.                                                         </ul>
    17.                                                     </div>
    18.                                                 </div>
    19.                                             </div>
    20.                                         `;

    2、在mounted方法中添加定时器,构造模拟数据

    1.         //创建模拟数据定时器
    2.         var mockInterval =  setInterval(() => {
    3.             if(document.getElementById("carSiteSpan")){
    4.                 document.getElementById("carSiteSpan").innerHTML = "距离"+(Math.random() * (1000-600+1) + 600).toFixed(2)+"米";
    5.             }
    6.             if(document.getElementById("carSpeedSpan")){
    7.                 document.getElementById("carSpeedSpan").innerHTML = Math.ceil(Math.random() * (60-30+1) + 30);
    8.             }
    9.             if(document.getElementById("wtSpan")){
    10.                 document.getElementById("wtSpan").innerHTML = Math.ceil(Math.random() * (100-50+1) + 50);
    11.             }
    12.             if(document.getElementById("rotationRateSpan")){
    13.                 document.getElementById("rotationRateSpan").innerHTML = Math.ceil((Math.random() * (3000-1000+1) + 1000));
    14.             }
    15.             if(document.getElementById("etSpan")){
    16.                 document.getElementById("etSpan").innerHTML = Math.ceil((Math.random() * (60-30+1) + 30));
    17.             }
    18.             if(document.getElementById("mileageSpan")){
    19.                 document.getElementById("mileageSpan").innerHTML = Math.ceil((Math.random() * (50000-49800+1) + 49800));
    20.             }
    21.             if(document.getElementById("fcSpan")){
    22.                 document.getElementById("fcSpan").innerHTML = (Math.random()).toFixed(2);
    23.             }
    24.         },3000);

    注意:

    通过id获取元素,并设置innerHTML内容

    Math.ceil(Math.random() * (60-30+1) + 30)   设置随机数在30 到 60之间并取整

    (Math.random() * (1000-600+1) + 600).toFixed(2)  设置随机数在600 到1000之间并保留2位小数。

     3、监听当前页面显示状态,当页面被销毁时,销毁定时器

    同样在mounted中

    1.         // 监听当前页面 显示状态
    2.         window.addEventListener('visibilitychange', this.handleVisibilityChange);
    3.         // 当页面被销毁时 移除监听
    4.         this.$on('hook:beforeDestroy', () => {
    5.           console.info('销毁mockInterval定时器');
    6.           clearInterval(mockInterval);
    7.         })

  • 相关阅读:
    AWS云服务器EC2实例实现ByConity快速部署
    Python3 基础语法
    Express的基本使用app.post()app.get()res.send()
    系统试运行方案
    内存的读写过程、现实模型及指针
    nodejs在pdf中绘制表格
    结合行人检测与单应性变换的安全社交距离估计
    华为OD机试 - 转盘寿司(Java & JS & Python & C)
    DGIOT国内首家轻量级物联网开源平台——真实ModbusRTU接入实战教程
    百度百科词条怎么更新?怎么能顺利更新百科词条?
  • 原文地址:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/128201309