위 챗 애플 릿 BindTap 빠 른 연속 으로 대상 페이지 를 클릭 하여 여러 번 문 제 를 처리 합 니 다.

질문 설명:
1)wxml 세 션

<view bindtap="loadMulti">
  <text>    ,    </text>
</view>
<view bindtap="loadOnce">
  <text>    ,    </text>
</view>

2)js 코드 세 션

loadMulti:function(e) {
  wx.navigateTo({
    url: '/pages/loadMulti/index',
  })
},
3)'연속 클릭,여러 번 불 러 오기'텍스트 문자열 을 연속 으로 클릭 하면 대상 페이지 load Multi/index 페이지 가 N 번 불 러 왔 습 니 다.N 번 을 눌 러 야 홈 페이지 로 돌아 갈 수 있 습 니 다.
문제 원인 분석:
애플 릿 은 MINA 프레임 워 크 를 기반 으로 이 프레임 워 크 의 핵심 프레임 워 크 의 핵심 은 응답 하 는 데이터 바 인 딩 시스템 으로 전체 시스템 은 두 개의 시각 계층(View)과 논리 계층(App Service)으로 나 뉘 며 프레임 워 크 는 데이터 와 보 기 를 매우 간단하게 동기 화 할 수 있다.데 이 터 를 수정 할 때 논리 층 에서 데 이 터 를 수정 하면 보기 층 은 해당 하 는 업 데 이 트 를 할 수 있 습 니 다.단 추 를 누 르 면 보기 층 은 bindtap 의 이 벤트 를 논리 층 에 보 내 고 논리 층 은 해당 하 는 이벤트 처리 함수 loadMulti 를 찾 아 실행 합 니 다.
그림 층 에서 bindtap 이 벤트 를 논리 층 에 보 내 고 해당 하 는 처리 함 수 를 찾 는 데 시간 이 걸 리 기 때문에 T1.해당 하 는 처리 함수 loadMulti 를 찾 은 후 loadMulti 함 수 를 실행 합 니 다.wx.navigateTo,hide 원래 페이지 는 시간 T2 가 필요 합 니 다.T1+T2 시간 내 에 N 회 를 빠르게 연속 클릭 하면 N 회 대상 페이지 를 불 러 올 수 있 습 니 다.
해결 방안:

 loadOnce:function(e) {
  if (!this.pageLoading) {
   this.pageLoading = !0;
   wx.navigateTo({
    url: '/pages/loadOnce/index',
   })
  }
 },
 onShow: function() {
  this.pageLoading = !1;
}
1)loadOnce 이벤트 처리 함수 에 pageLoading=true 설정
2)페이지 의 onShow 이벤트 에 pageLoading=false 설정
사실 우 리 는 포장 방법 으로 포장 할 수 있다.

/**

*              

*/

function throttle(fn, gapTime) {

  if (gapTime == null || gapTime == undefined) {

    gapTime = 1500

  }

  let _lastTime = null

  //       

  return function () {

    let _nowTime = + new Date()

    if (_nowTime - _lastTime > gapTime || !_lastTime) {

      fn.apply(this, arguments)  // this        

      _lastTime = _nowTime

    }

  }

} 

<button bindtap='tap' data-key='abc'>tap</button> 

const util = require('../../utils/util.js')

Page({

  data: {

    text: 'tomfriwel'

  },

  onLoad: function (options) {

  },

  tap: util.throttle(function (e) {

    console.log(this)

    console.log(e)

    console.log((new Date()).getSeconds())

  }, 1000)

})
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기