Commit 1f5a8997632a2fc582c490cbbec8105c4bde0d62

Authored by 王强
1 parent 4353fecc

购好物,首页,“折扣专区”和“积分商城”轮训在切换页面时不要再次设置轮训,优化~

src/pages/optimization2/optimization2.vue
... ... @@ -363,7 +363,8 @@
363 363 discountData: {
364 364 now: [], // 当前折扣专区数据(用于动画展示)
365 365 next: 0, // 下一个需要展示的折扣专区数组下标(折扣专区总数据)
366   - index: 0 // 下一个需要展示的位置下标(折扣专区now数据)
  366 + index: 0, // 下一个需要展示的位置下标(折扣专区now数据)
  367 + interval: null // 轮训对象,用于判断如果有轮训对象就不再重新设置轮训了
367 368 },
368 369 quality: null, // 品质优选
369 370 salesOptions: null, // 热销排行选项
... ... @@ -377,7 +378,8 @@
377 378 pointsData: {
378 379 now: [], // 当前积分商城数据(用于动画展示)
379 380 next: 0, // 下一个需要展示的积分商城数组下标(积分商城总数据)
380   - index: 0 // 下一个需要展示的位置下标(积分商城now数据)
  381 + index: 0, // 下一个需要展示的位置下标(积分商城now数据)
  382 + interval: null // 轮训对象,用于判断如果有轮训对象就不再重新设置轮训了
381 383 },
382 384 likeLists: null, // 猜你喜欢列表
383 385 likeNum: 0, // 猜你喜欢二维数组当前显示的下标
... ... @@ -674,15 +676,19 @@
674 676 // 设置折扣专区计时器,每3秒切换一次数据
675 677 this.$nextTick(() => {
676 678  
677   - // 判断数据数量是否 > 2 ,如果是,执行切换轮训
678   - if (this.discountData.now.length < this.discountLists.length) {
  679 + // 判断是否已有轮训对象
  680 + if (!this.discountData.interval) {
679 681  
680   - // 轮训计时器
681   - setInterval(() => {
682   -
683   - // 切换折扣专区数据
684   - this.fade(this.discountData, this.discountLists);
685   - }, 3000);
  682 + // 判断数据数量是否 > 2 ,如果是,执行切换轮训
  683 + if (this.discountData.now.length < this.discountLists.length) {
  684 +
  685 + // 轮训计时器
  686 + this.discountData.interval = setInterval(() => {
  687 +
  688 + // 切换折扣专区数据
  689 + this.fade(this.discountData, this.discountLists);
  690 + }, 3000);
  691 + }
686 692 }
687 693 });
688 694 }
... ... @@ -703,22 +709,26 @@
703 709 // 设置积分商城计时器,每3秒切换一次数据
704 710 this.$nextTick(() => {
705 711  
706   - // 判断数据数量是否 > 2 ,如果是,执行切换轮训
707   - if (this.pointsData.now.length < this.pointsLists.length) {
  712 + // 判断是否已有轮训对象
  713 + if (!this.pointsData.interval) {
708 714  
709   - // 和折扣专区岔开,延时1秒执行
710   - setTimeout(() => {
711   -
712   - // 随机生成轮训时间
713   - let timer = (parseInt(Math.random() * (500 + 1) + 3000, 10) || 3000);
  715 + // 判断数据数量是否 > 2 ,如果是,执行切换轮训
  716 + if (this.pointsData.now.length < this.pointsLists.length) {
714 717  
715   - // 轮训计时器
716   - setInterval(() => {
  718 + // 和折扣专区岔开,延时1秒执行
  719 + setTimeout(() => {
717 720  
718   - // 切换折扣专区数据
719   - this.fade(this.pointsData, this.pointsLists);
720   - }, timer || 3000);
721   - }, 1000);
  721 + // 随机生成轮训时间
  722 + let timer = (parseInt(Math.random() * (500 + 1) + 3000, 10) || 3000);
  723 +
  724 + // 轮训计时器
  725 + this.pointsData.interval = setInterval(() => {
  726 +
  727 + // 切换折扣专区数据
  728 + this.fade(this.pointsData, this.pointsLists);
  729 + }, timer || 3000);
  730 + }, 1000);
  731 + }
722 732 }
723 733 });
724 734 } else {
... ...