为什么这个随机点名的计时器还要加一个关掉计时器

这段的这个怎么理解,再次点击的时候加和不加停止定时器有什么不一样吗,必须要加个关闭定时器吗?

img


img

以下回答结合了ChatGPT:
这段代码是一个定时器,用于每隔一定时间(这里是100毫秒)产生一个随机数,并将数组中对应的学生姓名赋值给HTML页面上的某个标签(这里是id为qs的标签)。因为定时器是不断运行的,所以在点击开始按钮时需要先停止之前的定时器(通过clearInterval函数),然后再重新开启一个新的定时器,以免出现多个定时器同时运行的情况。

当再次点击开始按钮时,如果没有先停止之前的定时器,那么会开启一个新的定时器,此时就会出现多个定时器同时运行的情况,导致程序异常。

而点击结束按钮时,需要停止当前的定时器,否则随机数会继续产生,导致页面出现错误。同时,为了避免重复选择同一位学生,还需要将当前选中的学生从数组中删除,以确保下一次不会再次选中同一位学生。

必须要加一个关闭定时器,你可以试试多次点击,如果不清除,会新开启一个定时器和刚刚那个定时器一起运行,程序异常。如果关闭以后,多次点击每次都是一个新的单独运行的定时器,就没有那个问题了,这个操作也可以用阈值实现

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7706445
  • 这篇博客你也可以参考下:给数组里的对象中的数组每一项添加一个属性,属性值为发送请求过后的值
  • 除此之外, 这篇博客: 微信小程序 还在为滑动加载数据烦劳吗? 封装滚动加载方法 看了就会中的 5 :调用相关请求数据的方法,然后进行合并数据源 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
     /**
       * demo获取数据
       */
      get_list: function () {
        let that = this;
    
        //下面的for循环是模拟请求数据方法
        var temlist = that.data.list; //原始的数据集合
        for(var i=0;i<10; i++){
          var currentPage = that.data.currentPage; //获取当前页码
          var size = that.data.size;//每页数据条数
          if (currentPage == 1) {
            temlist = temlist.concat("我是第"+i+"条数据记录"); //初始化数据列表
              currentPage = 1;
          } else {
              temlist = temlist.concat("我是第" + ((i + 1) + (currentPage - 1) * size) + "条数据记录"); //请求的数据追加到原始数据集合里
              currentPage = currentPage + 1;
          }
         }
          that.setData({
            currentPage: currentPage,
            list: temlist,
            totalCount: 100, //总的数据条数
            pagecount: 100 / that.data.size //总页数
          })
    
        // //下面方法是实际去请求数据地址和相关参数传递
        // var webData = {
        //   size: this.data.size,
        //   currentPage: this.data.currentPage,
        // }
        // var url = "get_evaluationDate";
        // base.getWebDataWithPostOrGet({
        //   url: url,
        //   param: webData,
        //   method: "POST",
        //   success: function (res) {
        //     if (res.data.status == "success") {
        //       var temlist = that.data.allceplist; //原始的数据集合
        //       var currentPage = that.data.currentPage; //获取当前页码
        //       if (currentPage == 1) {
        //         temlist = res.data.data; //初始化数据列表
        //         currentPage = 1;
        //       } else {
        //         temlist = temlist.concat(res.data.data); //请求的数据追加到原始数据集合里
        //         currentPage = currentPage + 1;
        //       }
        //       that.setData({
        //         currentPage: currentPage,
        //         allceplist: temlist,
        //         totalCount: res.data.totalCount, //总的数据条数
        //         pagecount: res.data.totalCount / that.data.size //总页数
        //       })
        //     } else {
        //       wx.showToast({
        //         title: res.data.status,
        //         icon: "error"
        //       })
        //     }
        //     //console.log(that.data.allceplist);
        //   }
        // })
      }
  • 您还可以看一下 韦语洋(Lccee)老师的一机一码加密、被破解自动销毁随时授权回收升级系列视频课程课程中的 提交软件库说明与课程最后的提示小节, 巩固相关知识点

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^