这段的这个怎么理解,再次点击的时候加和不加停止定时器有什么不一样吗,必须要加个关闭定时器吗?
以下回答结合了ChatGPT:
这段代码是一个定时器,用于每隔一定时间(这里是100毫秒)产生一个随机数,并将数组中对应的学生姓名赋值给HTML页面上的某个标签(这里是id为qs的标签)。因为定时器是不断运行的,所以在点击开始按钮时需要先停止之前的定时器(通过clearInterval函数),然后再重新开启一个新的定时器,以免出现多个定时器同时运行的情况。
当再次点击开始按钮时,如果没有先停止之前的定时器,那么会开启一个新的定时器,此时就会出现多个定时器同时运行的情况,导致程序异常。
而点击结束按钮时,需要停止当前的定时器,否则随机数会继续产生,导致页面出现错误。同时,为了避免重复选择同一位学生,还需要将当前选中的学生从数组中删除,以确保下一次不会再次选中同一位学生。
必须要加一个关闭定时器,你可以试试多次点击,如果不清除,会新开启一个定时器和刚刚那个定时器一起运行,程序异常。如果关闭以后,多次点击每次都是一个新的单独运行的定时器,就没有那个问题了,这个操作也可以用阈值实现
不知道你这个问题是否已经解决, 如果还没有解决的话: /**
* 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);
// }
// })
}