LHJ

I'm a FE developer.

iphone iOS click

25 Sep 2020 » issue

iphone iOS click

위 글의 내용을 간추리면 아래와 같다.

  1. iOS 개발자들이 의도적으로 발생시킨 현상이다.
  2. 그 이유는 사용자가 페이지를 스크롤 할 어떠한 원인으로 click 이벤트가 발생할지 모르기 때문이다.
    즉, 사용자가 의도하지 않은 click 이벤트가 많이 발생할 수 있다는 말이다.
  3. 그렇기 때문에 브라우저에 과부하를 줄 수 있다. 이를 방지하고자 이러한 현상을 의도적으로 넣었다.
  4. 이러한 이슈가 보고된해가 2010년이다. 그럼에도 불구하고 현재까지 수정 안하는 것은 iOS 개발자들이 일부로 의도했다는 증거이다.

여기까지가 위 포스트 글쓴이의 추측이다. 이래서 iOS 개발자들이 의도적으로 노린 것 같다는 내용이다.

위 글을 읽어보면 정확한 원인은 모르겠다고 한다.
여튼 2010년에 이슈라이징되어서 지금까지 해결안된 이슈는 맞는 것 같다.

무튼 위 내용들로 이 내용이 진짜인가 테스트 해봤다.

우선 어제 태스트 내용

  • 세번째 main-section 위에 button 태그가 위치하면 처음 클릭시 이벤트가 바로 인식되어 콜백함수 실행
  • 세번째 main-section 안 또는 아래 button 태그가 위치하면 처음 클릭시 클릭이벤트가 발생하지 않음

위 내용들을 바탕으로 세운 가설

위 글 내용들이 진짜라면, 그리고 위의 현상을 종합해보면

  1. 스크롤이 많이 되었을시 (당연히 터치이벤트, 클릭이벤트가 많이 발생했을 것이다.)
  2. iOS는 의도적으로 button 태그의 click 이벤트를 off한다. (여기서 중요한 점은 터치이벤트는 off하지 않는다는 점이다. 그래서 터치관련 이벤트를 넣으면 바로 작동하는 것 같다.)
  3. 그래서 첫번째 button 터치(or클릭)를 하면 바로 click 이벤트가 발생 안한다.

–> 그렇다면 스크롤을 많이 할때마다 해당 버튼의 처음 클릭은 인식이 안되어야 합니다. or 안되는 경우가 많아야 합니다.

가설을 입증하기 위한 테스트

  1. 아이폰으로 해당 현상이 발생하는 페이지 접속한다.
  2. 스크롤을 내려서 버튼을 클릭해 처음에 click 이벤트를 인식하는지 확인한다. 두번째 클릭하면 당연히 인식할 것이다.
  3. 다시 스크롤을 많이 한다.
  4. 다시 해당 버튼으로 돌아가 클릭해본다. 처음 클릭 이벤트를 인식못할수도 있다.

결론

위의 내용처럼 iOS에서 의도된 동작같다.
아니면 여전히 10년째 해결하지 못한 버그같다.

  • 추가로 이 페이지말고도 다른 페이지에서 이런 현상이 많이 발생했었다. (생각해보니..)