jplay에서 autplay로 간단한 Slider를 작성했습니다. 자동 실행이 활성화 된 경우 함수를 가리키는 setTimeout이 설정됩니다. 이 함수는 자체적으로 재귀 적 setTimeout을가집니다.애니메이션에서 Chrome 시간 초과 문제가 발생했습니다.
Chrome을 제외한 모든 기능이 잘 작동합니다. 탭을 변경 한 후 잠시 기다렸다가 돌아 오면 슬라이더가 놀란다. 타임 아웃의 인스턴스가 여러 개있는 것처럼 보입니다 ...하지만 같은 변수에 타임 아웃을 지정 했으므로 그럴 수 없습니다.
일부 관련 코드 :
는var timer;
function autoplay() {
currentPosition++;
if(currentPosition == numberOfSlides) {
// last slide
currentPosition = 0;
}
manageNavigation(currentPosition);
// Hide/show controls
manageControls(currentPosition);
// animate the slides
slideshowAnimate();
// set timer
if(autoplay_enable) {
//clearTimeout(timer);
timer = setTimeout(function() { autoplay() }, interval*1000)
}
}
function setTimer() {
if(autoplay_enable) {
timer = setTimeout(function() { autoplay() }, interval*1000)
}
}
setTimer();
이 코드는 의미 상으로 다른 것으로 생각합니다. 원래 코드를 이와 같이 변경하면 tabchange 후에 Chrome이 실패하고 나중 단계에서 탭으로 돌아갑니다. –
정말 추가해야 할 유일한 비트는 clearTimeout입니다. 스타트 업 상태와 관련하여 다른 문제가있는 것 같습니다. 이 모든 것이 글로벌이거나 단일 시작 폐쇄로 감싸 였을 것으로 기대합니까? –